我当前有一个宏的一部分,当您单击选项卡 A 上的按钮时,该宏会运行。
ActiveSheet.Shapes.Range(Array("Button 36")).Select
Selection.Copy
ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(1, 0).Select
ActiveSheet.Paste
它复制按钮 36 并将其粘贴到您单击的按钮下方。
我现在需要复制此选项卡,最好不要更改宏,但是当我复制选项卡时,按钮 36 的 ID 号已更改。当此宏在新选项卡上运行时,活动工作表上没有按钮 36 可供其复制。
我尝试更改代码并为按钮设置一个新选项卡,并让它始终从该选项卡复制。但这没有用。这不像需要切换回正确的工作表那样愚蠢,对吗? Worksheets() 是否使所选工作表处于活动状态?
Worksheets("Buttons").Shapes.Range(Array("Button 1")).Select
Selection.Copy
ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(1, 0).Select
ActiveSheet.Paste
有办法做到这一点吗?
谢谢!
Buttons.Add
方法添加表单命令按钮OnAction
属性分配宏Option Explicit
' -- Standard Module
Sub Btn_Click()
MsgBox "Bingo"
End Sub
Sub AddBtn()
Dim oBtn As Object
Set oBtn = ActiveSheet.Buttons.Add(50, 50, 70, 30)
oBtn.Caption = "NewBtn"
oBtn.OnAction = "Btn_Click"
End Sub