VBA:删除除一个按钮之外的所有按钮的最佳方法

时间:2017-07-07 12:08:18

标签: excel vba

我在Excel中有不同的按钮,我想删除除了一些按钮之外的所有按钮。

我跑

ActiveSheet.Buttons.Delete

但是如何声明保留一个(我们可以假设它被称为“MyButton1”)?

1 个答案:

答案 0 :(得分:2)

执行For Each,通过循环浏览ActiveSheet.Shapes,您可以看到工作表上的所有不同按钮。在下面的示例中,它会将btn =分配给它正在查看的当前按钮。如果Button的名称不是"MyButton1",那么它将被删除。接下来将它发送回顶部再次开始。

For Each btn In ActiveSheet.Buttons
    If btn.Text <> "MyButton1" Then
        btn.Delete
    End If
Next

您可以执行此操作并更改&#34; MyButton1&#34;无论你想要什么。因为我假设这不是你实际按钮的名字。此外,如果由于某种原因您只是想要删除特别命名的按钮,则只需使用<>切换=。所以它会读到

If btn.Text = "MyButton1" Then btn.Delete

编辑 -

btn.Name更改为btn.AlternativeText以搜索按钮的可见文本,而不是对象名称本身。

编辑2 -

我已删除了ActiveSheet.Shapes,因为您在工作表中有其他元素,您不想删除它们。我已使用ActiveSheet.Buttons替换了原始代码,并将AlternativeText替换为btn.Text以标识按钮名称。

同样,如果您没有在带有按钮的工作表上运行此代码,则需要首先引用工作簿和工作表。