如何在 VBA for Excel 中引用复选框

2024-03-29

我使用开发人员功能区 > 插入 > ActiveX 控件 > 复选框创建了一个复选框。我想编写一个子代码,当选中该框时,PCAPV10 工作表中的一系列值将复制到 BOM 工作表上的一个范围中。我不确定我是否在代码中正确引用了我的复选框,并且不断收到对象错误。有什么建议么?

我已经尝试在复选框子项中进行编码,并且还引用另一个子项中的复选框。我似乎想不出任何一种方法可以做到这一点。

Private Sub CheckBox1_Click()
Dim PCAPV10 As Worksheet
Set PCAPV10 = Workbooks("CFC Calculation Program (Macro Enabled)").Sheets("Price Calculation APV10")
Dim BOM As Worksheet
Set BOM = Workbooks("CFC Calculation Program (Macro Enabled)").Sheets("BOM")
Dim chk1 As CheckBox
Set chk1 = Sheets("Price Calculation APV10").CheckBoxes("Check Box 1")
If Sheets("PCAPV10").OLEObjects("chk1").Object.Value = True Then
BOM.Range("A6:C120").Value = PCAPV10.Range("E11:I84").Value
End If
End Sub

我希望代码能够识别何时选中该框,并且如果为 true,则将 BOM 表中的范围设置为等于 PCAPV10 表中的范围。如果未选中,则不执行任何操作。相反,我收到运行时错误“1004”:应用程序定义或对象定义错误。


无需将 CheckBox1 声明为变量。您还将变量 PCAPV10 放入 Sheets("") 中。尝试这个:

If PCAPV10.OLEObjects("CheckBox1").Object.Value = True Then
     BOM.Range("A6:C120").Value = PCAPV10.Range("E11:I84").Value
End If

如果你想定义它,我很确定没有空格:

Set chk1 = Sheets("Price Calculation APV10").CheckBoxes("CheckBox1")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 VBA for Excel 中引用复选框 的相关文章

随机推荐