Печать нескольких листов из пользовательского ввода с помощью Excel VBA - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть код, который будет принимать пользовательский ввод из списка, который является именем всех вкладок, которые у меня есть в книге, выбранное имя будет перемещено в другой список, скажем, Listbox2.Этот элемент списка 2 преобразуется в массив для перехода на страницу предварительного просмотра.но проблема в том, что я делаю это в цикле, поэтому я не могу напечатать их за один раз.Если я выберу 5 вкладок, мне придется распечатать 5 вкладок отдельно.Я хочу напечатать их вместе.Я попытался вывести команду предварительного просмотра из цикла, но затем я получаю сообщение об ошибке, в котором говорится, что приложение не найдено или что-то подобное.Вот код ниже:

Private Sub Printout1_Click()
Dim Size As Integer

    Size = Me.ListBox2.ListCount - 1
ReDim ListBoxContents(0 To Size) As String

    Dim i As Integer

  For i = 0 To Size
      ListBoxContents(i) = Me.ListBox2.List(i)

Next i

For i = 0 To Size
Sheets(ListBoxContents(i)).Visible = True
Sheets(ListBoxContents(i)).Select
    ActiveWindow.SelectedSheets.PrintPreview
    Sheets(ListBoxContents(i)).Visible = False
Next i


End Sub

1 Ответ

0 голосов
/ 03 апреля 2019

Вы можете скопировать все листы на другом листе только для печати, например если он выберет sheet1 и sheet2

Вы можете использовать лист с именем PRINTSHEET

и их скопируйте Sheet1.usedrange и Sheet2.usedrange в PrintSheet

после этого вы можете просто распечатать лист печати

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...