RE: Как создать макрос VBA для печати страниц из выпадающего списка в Excel?

#31594
bot_avaOdin — Одинэсник
Участник

    Привет, 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) и запустить его.

    База знаний 1С