excel vba检查命令按钮和复选框是不是存在
Posted
技术标签:
【中文标题】excel vba检查命令按钮和复选框是不是存在【英文标题】:excel vba check if command button and checkbox existsexcel vba检查命令按钮和复选框是否存在 【发布时间】:2014-06-28 21:59:03 【问题描述】:我有一个使用复选框和命令按钮的脚本,并且有一个宏可以在每张纸上将它们重置为默认值。
'opt button reset
For i = 1 To Worksheets.Count
Sheets(i).Shapes("Option Button 1").ControlFormat.Value = xlOn
Next i
'cb reset
For i = 1 To Worksheets.Count
Sheets(i).Shapes("CheckBox1").ControlFormat.Value = xlOff
Next i
问题是,如果工作表没有复选框或选择按钮,则脚本不起作用
我要做的是检查 cb 和 ob 是否存在并仅执行脚本。
提前致谢
【问题讨论】:
【参考方案1】:您有几个选择。
最快的方式:On Error Resume Next
On Error Resume Next
For i = 1 To Worksheets.Count
Sheets(i).Shapes("Option Button 1").ControlFormat.Value = xlOn 'opt button reset
Sheets(i).Shapes("CheckBox1").ControlFormat.Value = xlOff 'cb reset
Next i
遍历对象并匹配名称
For i = 1 To Worksheets.Count
For Each myControl In Sheets(i).Shapes
If myControl.Name = "CheckBox1" Then
myControl.Value = xlOff
ElseIf myControl.Name = "Option Button 1" Then
myControl.Value = xlOn
End If
Next myControl
Next i
【讨论】:
第二个不起作用,我得到错误:对象不支持方法的这个属性。我发现第二个更漂亮:-) 控件名称中实际上不能有空格。你能验证选择按钮的名称吗? 它带有空格,并且正在使用第一个解决方案。现在我没有空格就做了,并且出现了同样的错误。会不会是因为我使用了 Workbook_BeforeSave 功能? 好的,我发现了问题:myControl.ControlFormat.Value
是工作版本 :) 谢谢你的帮助以上是关于excel vba检查命令按钮和复选框是不是存在的主要内容,如果未能解决你的问题,请参考以下文章
从 Excel VBA-检查访问表是不是存在/如果不存在,则创建/复制
Swift - 处理表格视图多个部分的自定义复选标记按钮状态