ActiveX 按钮出现在所有工作表上

ActiveX button is appearing on all worksheets

我是 VBA 的新手,我找不到这个问题的答案。我在一个 sheet 上安装了 ActiveX 按钮。我也在创建新的 sheets is same workbook。问题是按钮出现在所有这些工作sheet 上。我希望该按钮仅出现在一个作品 sheet 上,因此它不会出现在我使用 VBA.

创建的其他作品 sheet 上

单独模块中的代码:

Option Explicit

Sub copying()

Worksheets(1).Copy After:=Worksheets(Worksheets.Count)

Worksheets(2).Activate

Worksheets(2).Name = "Test"

End Sub

调用复制功能的按钮代码:

Option Explicit

Private Sub CommandButton1_Click()

Call copying

End Sub

按钮出现在创建的新作品sheet上。

谢谢。

您正在使用 Worksheet.Copy 方法复制 sheet 及其所有内容,包括您的按钮。使用 Sheets.Add 方法 (https://msdn.microsoft.com/en-us/library/office/ff839847.aspx) 或像您已经做的那样复制 sheet 并删除按钮。

.Add 只会添加一个新的 sheet:

ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)

.Copy 将复制 sheet 的内容。如果你想复制的sheet上有很多数据,那么复制sheet并删除多余的按钮会更容易:

Option Explicit

Sub copying()
    Worksheets(1).Copy After:=Worksheets(Worksheets.Count)
    Worksheets(2).Activate
    Worksheets(2).Name = "Test"

    Dim objShape As Shape
    For Each objShape In ActiveSheet.Shapes 
        ' I think 12 is the msoShapeType you need.
        If objShape.Type = 12 Then objShape.Delete
    Next objShape
End Sub