【问题标题】:how to link a checkbox on Excel to a VBA code如何将 Excel 上的复选框链接到 VBA 代码
【发布时间】:2013-06-18 16:56:57
【问题描述】:

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

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

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

【问题讨论】:

  • 右键单击它,选择属性,然后查看(名称)字段。真的叫ChkV吗?还是您只是将标题更改为 ChkV?

标签: excel vba checkbox


【解决方案1】:

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

  1. Code Name 是你在VBA Project tree 中看到的样子:

    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,你可以找到其他内容 here

【讨论】:

    【解决方案2】:

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

    If Sheets("Sheet 1").ChkV.Value = True Then
        ' my code
    End If
    

    【讨论】:

      【解决方案3】:

      应该不会吧

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

      ?

      【讨论】:

        猜你喜欢
        • 2017-12-02
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多