如何删除工作表上的所有按钮?

时间:2016-02-15 12:25:17

标签: excel-vba vba excel

我有一些代码可以在工作表上创建一个“保存”按钮(保存在wsReport变量中),但它不会删除以前的按钮。随着时间的推移,他们往往会积累起来。有没有办法做这样的事情?

wsReport.Buttons.All.Delete

(显然不对,但是想一想我正在寻找什么。)

4 个答案:

答案 0 :(得分:12)

见下面的代码:)

Sub RemoveButtons()
Dim i As Integer
    If ActiveSheet.ProtectContents = True Then
        MsgBox "The Current Workbook or the Worksheets which it contains are protected." & vbLf & "                          Please resolve these issues and try again."
    End If

    On Error Resume Next
        ActiveSheet.Buttons.Delete
End Sub

来源: http://www.mrexcel.com/forum/excel-questions/609668-delete-all-buttons-sheet-visual-basic-applications.html

或者您可以使用以下代码: (VBA中的按钮位于Shapes集合中)。

Sub DelButtons()
Dim btn As Shape

For Each btn In ActiveSheet.Shapes
    If btn.AutoShapeType = msoShapeStyleMixed Then btn.Delete
Next

End Sub

源: Deleting a collections of VBA buttons

答案 1 :(得分:1)

请参见下面的代码:

Sub DeleteAllShapes() 

    ActiveSheet.Shapes.SelectAll

    Selection.Delete

End Sub

答案 2 :(得分:0)

如果有人发现了这个问题,但只需要删除一个按钮,这对我有帮助:

ActiveSheet.Shapes("my_button_name").Delete

答案 3 :(得分:-2)

有一种不使用VB的简单方法:

  1. 单击“开发人员”选项卡
  2. 点击设计模式
  3. 点击工作表中的任何按钮
  4. 按Ctrl + A选择工作表中的所有按钮
  5. 按删除