excel vba检查命令按钮和复选框是否存在
我有一个使用复选框和命令按钮的脚本,还有一个宏可以在每个工作表上将它们重置为默认值excel vba检查命令按钮和复选框是否存在,vba,excel,exists,commandbutton,Vba,Excel,Exists,Commandbutton,我有一个使用复选框和命令按钮的脚本,还有一个宏可以在每个工作表上将它们重置为默认值 '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").Control
'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
问题是,如果有一个没有复选框或opt按钮的工作表,脚本将无法工作
我想做的是检查cb和ob是否存在,并只执行脚本
提前感谢您有两种选择
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
你有两个选择
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
你有两个选择
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
你有两个选择
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
第二个不起作用,我得到一个错误:对象不支持方法的这个属性。我发现第二个fancyer:-)实际上,控件名中不能有空格。您能验证一下opt按钮的名称吗?它带有空格,并且正在使用第一个解决方案。现在我没有空格,同样的错误也出现了。是否可能是因为我使用了工作簿\u BeforeSave函数?好的,我发现了问题:
myControl.ControlFormat.Value
是工作版本:)谢谢您的帮助第二个不工作,我得到错误:对象不支持方法的此属性。我发现第二个fancyer:-)实际上,控件名中不能有空格。您能验证一下opt按钮的名称吗?它带有空格,并且正在使用第一个解决方案。现在我没有空格,同样的错误也出现了。是否可能是因为我使用了工作簿\u BeforeSave函数?好的,我发现了问题:myControl.ControlFormat.Value
是工作版本:)谢谢您的帮助第二个不工作,我得到错误:对象不支持方法的此属性。我发现第二个fancyer:-)实际上,控件名中不能有空格。您能验证一下opt按钮的名称吗?它带有空格,并且正在使用第一个解决方案。现在我没有空格,同样的错误也出现了。是否可能是因为我使用了工作簿\u BeforeSave函数?好的,我发现了问题:myControl.ControlFormat.Value
是工作版本:)谢谢您的帮助第二个不工作,我得到错误:对象不支持方法的此属性。我发现第二个fancyer:-)实际上,控件名中不能有空格。您能验证一下opt按钮的名称吗?它带有空格,并且正在使用第一个解决方案。现在我没有空格,同样的错误也出现了。是否可能是因为我使用了工作簿保存之前的功能?好的,我发现了问题:myControl.ControlFormat.Value
是工作版本:)谢谢您的帮助