如何将Excel上的checkbox链接到VBA代码

我在Excel工作表上创build了一个checkbox,使用devise模式我已经将它命名为ChkV,并且我写了一个VBA代码,但是当我运行它时,我收到一条消息,告诉我这个variables没有被定义。

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

我没有正确的标记checkbox,我做错了什么? 我该如何解决这个错误?

如果不是的话

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

当您在checkbox所在的工作Sheet module外调用代码时,出现此错误。 为了改进你的代码,你需要添加引用checkbox所属的工作表,如:

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

嗨,我一遍又一遍地打破了我的头,但search,我发现你需要引用CodeName的表或使用OleObjects

  1. Code 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是西class牙文这就是为什么你看到Hoja1 ,英文是Sheet1 ,你可以在这里find别的东西。

VBAProject树