Я пытаюсь добавить кнопку в книгу Excel, чтобы она отображалась на каждом листе. Отличный ответ на мой первоначальный вопрос дал мне макрос для создания кнопок на каждом листе:Как добавить командную кнопку в VBA?
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
Я теперь возникают проблемы с установкой свойств кнопки, так что кнопка печатает лист при нажатии. Опять же здесь моя печать макрос:
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
Там были некоторые хорошие предложения о том, как идти о включении этого макроса в свойствах кнопки (передачи переменных и создание новой печати суб), однако я довольно новыми для VBA и были безуспешны, чтобы заставить это работать. В идеале у меня бы был макрос кнопки, который создает кнопку, и каждый раз при нажатии на нее нажимается макрос печати для каждого листа.
Последнее, что я пытаюсь изменить код кнопки, чтобы он только добавлял кнопки на лист 5 вперед. Было бы здорово, если бы кто-нибудь знал, как это сделать?
Любой совет полезен и ценится!
Спасибо! Это добавило кнопку на каждую страницу! Когда я добавляю свойства кнопки, могу ли я просто поместить свой код печати vba или есть способ установить код, чтобы он включался только при нажатии? – Cam
@Cam вы должны создать новый Sub и иметь этот суб, содержащий ваш код для печати. Sub должен требовать переменную, вызываемую при нажатии кнопки (поиск информации о передаче переменных в подсистемы). Затем в каждой кнопке есть код «Вызовите MyPrintSub (BUTTON_VARIABLE)». И тогда вам не нужно будет копировать код с каждой кнопки по отдельности, вам просто нужно вызвать суб-кнопку с каждой кнопки. Это упростит редактирование для всех кнопок. –
Извините, я довольно новичок в VBA и кодировании, и я думаю, что вы говорите, имеет смысл, но я не понимаю, как реализовать. У вас есть примеры кода для этого[email protected] Grade'Eh'Bacon – Cam