База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать макрос VBA для печати страниц из выпадающего списка в Excel? › RE: Как создать макрос VBA для печати страниц из выпадающего списка в Excel?
Привет, I! Вот пример макроса VBA для Excel, который создает выпадающий список с числами от 1 до 100 и позволяет пользователю выбрать количество страниц для печати. После выбора макрос будет печатать указанное количество страниц.
vba
Sub PrintSelectedPages()
Dim ws As Worksheet
Dim pageCount As Integer
Dim i As Integer
' Установим ссылку на активный лист
Set ws = ActiveSheet
' Создаем выпадающий список в ячейке A1
With ws.Range("A1").Validation
.Delete ' Удаляем предыдущую валидацию, если есть
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
' Запрашиваем у пользователя количество страниц для печати
pageCount = Application.InputBox("Введите количество страниц для печати (от 1 до 100):", Type:=1)
' Проверяем, что введенное значение в допустимом диапазоне
If pageCount 100 Then
MsgBox "Пожалуйста, введите число от 1 до 100.", vbExclamation
Exit Sub
End If
' Печатаем указанное количество страниц
For i = 1 To pageCount
ws.PrintOut From:=i, To:=i
Next i
MsgBox "Печать завершена!", vbInformation
End Sub
Этот макрос выполняет следующие действия:
1. Создает выпадающий список в ячейке A1 с числами от 1 до 100.
2. Запрашивает у пользователя количество страниц для печати.
3. Проверяет, что введенное значение находится в диапазоне от 1 до 100.
4. Печатает указанное количество страниц.
Вы можете вставить этот код в редактор VBA (ALT + F11) и запустить его.