我正在创建一个测验。它适用于我所拥有的部分,但有点冗长。我正在使用的RadioButtons在“属性”窗口的开头设置。我有一个"重置"我用来清除测验的CommandButton。
' Question Block 1
' THIS method does work
ActiveSheet.OptionButton1.Enabled = True
ActiveSheet.OptionButton2.Enabled = True
ActiveSheet.OptionButton3.Enabled = True
ActiveSheet.OptionButton4.Enabled = True
ActiveSheet.OptionButton1.Value = False
ActiveSheet.OptionButton2.Value = False
ActiveSheet.OptionButton3.Value = False
ActiveSheet.OptionButton4.Value = False
' Question Block 1 (Alternate Method)
' THIS method does NOT work
ActiveSheet.OptionButton1.GroupName = "Q1"
ActiveSheet.OptionButton2.GroupName = "Q1"
ActiveSheet.OptionButton3.GroupName = "Q1"
ActiveSheet.OptionButton4.GroupName = "Q1"
ActiveSheet.OptionButton.GroupName("Q1").Enabled = True
ActiveSheet.OptionButton.GroupName("Q1").Value = False
第一个代码块工作正常。第二个没有。尝试以这种方式将RadioButtons分配给组时,我做错了什么?我尝试了很多方法,大多数都以错误消息结束,说明对象不支持此属性或方法,方法或成员未找到,对象需要和打开等。抓我的头。 --Edited我没有在UserForm中使用它。 RadioButtons只放在Excel工作表上。
答案 0 :(得分:0)
找到一个似乎对我的目的非常有用的答案。我希望通过GroupNames属性来做这件事,但只要它有效,有很多方法可以解决任何问题。希望其他人可以从这段代码中受益。
' Defines OptionButtons as Objects
Dim OptBtn As OLEObject
' Re-Enables RadioButtons
For Each OptBtn In Sheet1.OLEObjects
If TypeName(OptBtn.Object) = "OptionButton" Then
OptBtn.Object.Enabled = True
End If
Next
' Resets RadioButtons to False (removes the dot)
For Each OptBtn In Sheet1.OLEObjects
If TypeName(OptBtn.Object) = "OptionButton" Then
OptBtn.Object.Value = False
End If
Next