В Excel, PDF серия рабочих листов с VBA - PullRequest
0 голосов
/ 29 января 2020

Предполагается, что приведенный ниже код отразит все между двумя именами таблиц, приведенными ниже.

Приведенный ниже код говорит о несоответствии типов в строке "Sheets (SheetArr) .Select". Любая помощь будет принята с благодарностью.

Sub createPdf()

Dim SheetArr() As String
Dim i As Integer
Dim startSheet As Integer
Dim endSheet As Integer

startSheet = Sheets(InputBox("Sheet name?","CreatePDF")).Index
endSheet = Sheets(InputBox("Sheet name?", "CreatePDF")).Index
Dim folderPath As String
folderPath = InputBox("folderPath?", "CreatePDF")

For Each ws In ThisWorkbook.Worksheets
If ws.Index >= startSheet And ws.Index <= endSheet Then ' <> "Sheet3" Then
ReDim Preserve SheetArr(i)
SheetArr(i) = ws.Name

i = i + 1
Debug.Print (ws.Name)

End If
Next

Sheets(SheetArr).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, 
Filename:=folderPath & "\test", _
openafterpublish:=False, ignoreprintareas:=False

MsgBox "All done with pdf's"

End Sub

1 Ответ

0 голосов
/ 29 января 2020

Взгляните на документацию . Список имен листов (который должен быть в двойных кавычках, разделенных запятыми) должен быть заключен в Array()

. Используйте Sheets (массив), чтобы указать более одного листа. В следующем примере листы с именами Sheet4 и Sheet5 перемещаются в начало рабочей книги.

VB

Copy Sheets (Array ("Sheet4", "Sheet5")). Переместить до: = Sheets (1)

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