【问题标题】:In excel, PDF Range of Worksheets with VBA在 Excel 中,使用 VBA 的 PDF 工作表范围
【发布时间】:2023-03-25 18:25:02
【问题描述】:

下面的代码应该将下面给出的两个工作表名称之间的所有内容都转换为 PDF。

下面的代码在运行时显示“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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    看看documentation。工作表名称列表(应该用双引号,用逗号分隔)需要包裹到Array()

    使用 Sheets(数组)指定多个工作表。以下 示例将名为 Sheet4 和 Sheet5 的工作表移动到 工作簿。

    VB

    Copy Sheets(Array("Sheet4", "Sheet5")).Move before:=Sheets(1)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 2011-12-24
      相关资源
      最近更新 更多