VBA技巧:自动给每个工作表添加相同大小和位置的按钮并指定相同的宏

2024-05-22 15:18:17 浏览数 (2)

标签:VBA

Q:我有一个工作簿,包含有多个工作表,我想在这些工作表的同一位置都添加一个按钮,并对这些按钮指定相同的宏过程,如何实现?

A:这样的操作最适合使用VBA。

在第一个工作表,假设其名称为“Sheet1”中,在想要添加按钮的位置放置一个大小合适的按钮,编辑修改其上的文字,然后指定宏过程,示例为MacroToRun。

打开VBE,插入一个标准模块,在其中输入下面的代码:

代码语言:javascript复制
Sub AddButtons()
 Dim ws As Worksheet
 Dim oButton As Shape
 Dim T As Double, L As Double, H As Double, W As Double
 Dim M As String, C As String
 
 Set oButton = Worksheets("Sheet1").Shapes("Button 1")
 With oButton
   T = .Top
   L = .Left
   H = .Height
   W = .Width
   M = .OnAction
   ActiveSheet.Shapes.Range(Array("Button 1")).Select
   C = Selection.Characters.Text
 End With
 
 For Each ws In ThisWorkbook.Worksheets
   If Not ws Is Sheet1 Then
     ws.Select
     ws.Buttons.Add(L, T, W, H).Select
     Selection.OnAction = M
     Selection.Text = C
   End If
 Next
End Sub

Sub MacroToRun()
 MsgBox ActiveSheet.Name
End Sub

运行AddButtons过程,即可在每个工作表相同位置添加相同大小的按钮并指定相同的宏。

0 人点赞