gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:58:53 25 4
gpt4 key购买 nike

我是 VBA 新手,我无法找到答案。我在一张纸上有 ActiveX 按钮。我也在创建新工作表是同一个工作簿。问题是该按钮出现在所有这些工作表上。我希望该按钮仅出现在一个工作表上,因此它不会出现在我使用 VBA 创建的其他工作表上。

单独模块中的代码:

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

按钮出现在创建的新工作表上。

谢谢你。

最佳答案

您正在使用 Worksheet.Copy复制工作表及其所有内容(包括您的按钮)的方法。使用 Sheets.Add方法(https://msdn.microsoft.com/en-us/library/office/ff839847.aspx)或像你已经做的那样复制工作表并删除按钮。
.Add只会添加一个新工作表:

ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
.Copy将复制工作表的内容。如果您要复制的工作表上有很多数据,复制工作表并删除多余的按钮会更容易:
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 - ActiveX 按钮出现在所有工作表上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com