我的目标:使用单选按钮或选项按钮选择预定义的单元格,并使用字母/数字指示符(在本例中为“N1”)填充它们,使用 If-Then-Else,允许用户选择一组不同的单元格,但重复使用N1 指示符。
问题 1:声明变量后,我在程序的第一行始终收到错误,指出变量未定义。
问题 2:使用 activeX 控件 optionButtons,由于它们允许与宏一起使用,因此在选择时不会激活。我可以使用表单按钮,但它们不能与宏一起使用。
我已经多次重写了变量的声明(我相信现在是正确的),但当程序的第一行运行时似乎仍然出现问题(已以多种变体编写以尝试纠正)。 对于问题的根源有什么想法吗?
坚持使用 ActiveX 选项按钮,您可以在代码后面(放置在相关工作表代码窗格中):
Option Explicit
Private Sub opt_ASHRAE_Click()
N1Variable
End Sub
Private Sub opt_CECT24_Click()
N1Variable
End Sub
Private Sub opt_IECC_Click()
N1Variable
End Sub
Private Sub opt_NONE_Click()
N1Variable
End Sub
Sub N1Variable()
With Me
If .opt_IECC Then
.Range("D3, D6").Value = "N1"
ElseIf .opt_ASHRAE Then
.Range("D4, D7").Value = "N1"
ElseIf .opt_CECT24 Then
.Range("D5, D8").Value = "N1"
Else
.Range("D3:D9").ClearContents
End If
End With
End Sub
您可以注意到您需要第四个选项按钮(我称为“opt_NONE”)来触发范围内容删除
我尝试了你的例子,按钮仍然无法操作。我错过了什么吗: 选项显式
私有子 opt_ASHRAE_Click() N1变量 结束子
私有子 opt_CECT24_Click() N1变量 结束子
私有子 opt_IECC_Click() N1变量 结束子
私有子 opt_NONE_Click() N1变量 结束子
子 N1Variable()
With Me
If .opt_IECC Then
.Range("E2,E6").Value = "N1"
ElseIf .opt_ASHRAE Then
.Range("E3,E7").Value = "N1"
ElseIf .opt_CECT24 Then
.Range("E4,E8").Value = "N1"
Else: .Range("E2:E8").ClearContents
End If
End With
结束子
私有子工作表_SelectionChange(ByVal目标作为范围)
结束子