使用 3 个选项按钮 - 启动和变量定义过程中出现问题

问题描述 投票:0回答:2

我的目标:使用单选按钮或选项按钮选择预定义的单元格,并使用字母/数字指示符(在本例中为“N1”)填充它们,使用 If-Then-Else,允许用户选择一组不同的单元格,但重复使用N1 指示符。

问题 1:声明变量后,我在程序的第一行始终收到错误,指出变量未定义。

问题 2:使用 activeX 控件 optionButtons,由于它们允许与宏一起使用,因此在选择时不会激活。我可以使用表单按钮,但它们不能与宏一起使用。

我已经多次重写了变量的声明(我相信现在是正确的),但当程序的第一行运行时似乎仍然出现问题(已以多种变体编写以尝试纠正)。 对于问题的根源有什么想法吗? screen shot with worksheet, property box, and code shown

excel vba variables radio-button definition
2个回答
0
投票

坚持使用 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”)来触发范围内容删除


0
投票

我尝试了你的例子,按钮仍然无法操作。我错过了什么吗: 选项显式

私有子 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目标作为范围)

结束子

© www.soinside.com 2019 - 2024. All rights reserved.