【发布时间】:2021-07-25 13:00:23
【问题描述】:
我实际上是在尝试制作一个用户表单来控制工作簿表中的每个复选框(它主要是显示公司特定时期数据的图表),因为每个图表都有相同的复选框(ActiveX 的)与他们的名字相同,我想制作一个始终处于活动状态的用户表单,这样客户就可以选择他将使用哪些用户表单,它只会循环遍历其他表单而不会出现问题。
但问题首先是我的代码:
Dim ws As Worksheet
If Me.CheckBox1.Value = True Then
For Each ws In ThisWorkbook.Worksheets
ws.OLEObjects("chkAno1").Object.Value = 1
Next ws
ElseIf Me.CheckBox1.Value = False Then
For Each ws In ThisWorkbook.Worksheets
ws.OLEObjects("chkAno1").Object.Value = 0
Next ws
End If
我只用一个复选框来测试它(我想要影响的每张表中都有一个“chkAno1”)但是每次我运行代码并单击复选框时,我都会得到“错误 1004:方法”OLEObjects " from object "_Worksheet" Failed",奇怪的是如果我用 "ActiveSheet" 更改 "ws" 代码可以正常工作,但只会更新当前打开的工作表。
所以我现在很茫然。
【问题讨论】:
-
当改成 activesheet 时,你有没有依次测试每张表?有没有隐藏的床单?
标签: excel vba loops checkbox activex