Excel 使用VBA删除每张图纸中的按钮
我使用以下VBA在每张图纸中插入一个按钮:Excel 使用VBA删除每张图纸中的按钮,excel,vba,Excel,Vba,我使用以下VBA在每张图纸中插入一个按钮: Sub Insert_Button_in_each_sheet() Dim b As Worksheet For Each b In Worksheets b.Select Dim Button_01 As Button Set Button_01 = b.Buttons.Add(423.75, 0, 48, 15) Set Range_Button_01 = b.Range("B1:C5") Selection
Sub Insert_Button_in_each_sheet()
Dim b As Worksheet
For Each b In Worksheets
b.Select
Dim Button_01 As Button
Set Button_01 = b.Buttons.Add(423.75, 0, 48, 15)
Set Range_Button_01 = b.Range("B1:C5")
Selection.Name = "Button_01"
With Button_01
.Top = Range_Button_01.Top
.Left = Range_Button_01.Left
.Width = Range_Button_01.Width
.Height = Range_Button_01.Height
.Text = "Button_01"
End With
Next b
End Sub
这一切都很好
现在,我想使用以下VBA删除每张图纸中的此按钮:
Sub Delete_Existing_Button()
Dim b As Worksheet
For Each b In Worksheets
b.Select
b.Shapes("Button_01").Delete
Next b
End Sub
然而,当我运行这段代码时,我得到运行时错误5
我需要在代码中更改什么才能使其正常工作?选项A:在插入代码中添加以下行:
选项B:将删除代码更改为以下内容:
For Each b In Worksheets
b.buttons.Delete
'or
'b.buttons(1).delete
Next b
尝试将Button_01.Name=Button_01添加到插入代码中。看看删除代码是否有效,然后是什么让你认为你的按钮有这个名称?SelectionName=。。。永远不要出于正当理由使用selectionexcept,因为它们非常罕见您命名的是工作表而不是按钮。这就是为什么应该避免使用.select和.selection,而是使用对对象的显式引用。此外,如果希望代码保持一致,因为在第一个子部分中使用了.buttons集合,那么在第二个子部分中也应该使用它,而不是使用.shapes集合。这两种方法都可以,但为了保持一致性,我只使用两种方法中的一种。非常感谢您提供有关select方法的所有其他信息。
For Each b In Worksheets
b.buttons.Delete
'or
'b.buttons(1).delete
Next b