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
我是 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