0

我在我的 Excel 工作表上创建了一个复选框,使用设计模式左键单击它并将其命名为 ChkV,我编写了一个 VBA 代码,但是当我运行它时,我收到一条消息,指出变量未定义。

    If ChkV.Value = True Then
        ' my code
    End If

我没有正确标记复选框,我做错了什么?我应该如何解决这个错误?

4

3 回答 3

3

不应该

If  activesheet.Checkboxes("ChkV") = xlOn Then
'your code
End If

?

于 2013-06-21T14:07:35.857 回答
1

Sheet module当您在您所在的位置之外调用您的代码时,您会遇到此错误checkbox。要改进您的代码,您需要添加对checkbox所属工作表的引用,例如:

If Sheets("Sheet 1").ChkV.Value = True Then
    ' my code
End If
于 2013-06-21T14:22:23.973 回答
0

嗨,我为此一遍又一遍地打破了我的头,但搜索我发现你需要通过CodeName's 表或使用OleObjects

  1. ByCode Name是您在VBA 项目树中看到的方式:

    Hoja1.[CheckBoxName].Value  
    '' In English or what ever you may call your sheet is:
    Sheet1.[CheckBoxName].Value
    
  2. 通过OleObjects是:

    Dim Wks as Worksheet  
    Set Wks = Worksheets("[SheetName]")    '' in this case "Prueba"
    Wks.OLEObjects("[CheckBoxName]").Object.Value
    

请注意,我的 Excel 是西班牙文,这就是你看到的原因Hoja1,英文是英文的Sheet1,你可以在这里找到其他内容。

VBA项目树

于 2016-04-28T17:29:38.120 回答