从另一个选项卡复制按钮

问题描述 投票:0回答:1

我当前有一个宏的一部分,当您单击选项卡 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

有办法做到这一点吗?

谢谢!

excel vba button
1个回答
0
投票
  • 使用
    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
© www.soinside.com 2019 - 2024. All rights reserved.