Cam*_*Cam 5 excel vba button excel-vba
我正在尝试向Excel工作簿添加一个按钮,以便它显示在每个工作表中.我原来问题的一个很好的答案给了我一个宏来创建每张纸上的按钮:
Sub AddButtons()
Dim ws As Excel.Worksheet
Dim btn As Button
For Each ws In ThisWorkbook.Worksheets
Set btn = ws.Buttons.Add(X, Y, W, H)
[set btn properties]
Next ws
End Sub
Run Code Online (Sandbox Code Playgroud)
我现在在设置按钮属性时遇到问题,以便按下按钮时按钮打印.这里是我的打印宏:
Dim WS_Count As Integer
Dim i As Integer
' Set WS_Count equal to the number of worksheets in the active workbook.
WS_Count = ActiveWorkbook.Worksheets.Count
'allows user to set printer they want to use
Application.Dialogs(xlDialogPrinterSetup).Show
' Begin the loop.
For i = 5 To WS_Count
Worksheets(i).Activate
With ActiveWorkbook.Worksheets(i).PageSetup
.PrintArea = "A1:O48"
.Orientation = xlLandscape
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With
ActiveWorkbook.Worksheets(i).PrintOut
Run Code Online (Sandbox Code Playgroud)
关于如何将这个宏合并到按钮属性(传递变量和创建一个新的打印子)中有一些很好的建议,但是我对VBA很新,并且没有成功实现它.理想情况下,我会有一个创建按钮的按钮宏,每次按下时都会调用每张纸的打印宏.
最后一件事,我正在尝试更改按钮代码,以便它只向第5张纸张添加按钮.如果有人知道如何做到这一点会很棒吗?
任何建议都很有帮助,非常感谢!
尝试这个:
Sub AddButtons()
Dim ws As Excel.Worksheet
Dim btn As Button
For Each ws In ThisWorkbook.Worksheets
Set btn = ws.Buttons.Add(X, Y, W, H)
btn.OnAction = "MySub" ' MySub is executed when btn is clicked
' Substitute the name of your printing subroutine
btn.Caption = "Print"
'set additional btn properties as needed
Next ws
End Sub
Run Code Online (Sandbox Code Playgroud)
X
并Y
确定位置,W
并H
确定按钮的大小。