【发布时间】:2021-08-20 18:41:11
【问题描述】:
以下代码取 Col"E" 的状态,如果是 = Include,则其对应的工作表范围将转换为 PDF。
我已经尝试过,但它无法正常接收错误invalid procedure call or argument 在线
rng.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=saveLocation
如果您能帮助解决问题,我们将不胜感激。
Sub SelectSheets_Ranges()
Dim sh As Worksheet, lastR As Long, rng As Range, arr, arrSplit, i As Long, k As Long
Set sh = ActiveSheet
lastR = sh.Range("C" & sh.Rows.Count).End(xlUp).Row
ReDim arr(lastR - 1)
For i = 6 To lastR
If sh.Range("E" & i).Value = "Include" Then
arr(k) = sh.Range("C" & i).Value & "|" & sh.Range("D" & i).Value: k = k + 1
End If
Next i
ReDim Preserve arr(k - 1)
For i = 0 To UBound(arr)
arrSplit = Split(arr(i), "|")
Set rng = Worksheets(arrSplit(0)).Range(arrSplit(1))
'Create and assign variables
Dim saveLocation As String
saveLocation = "C:\Users\marks\OneDrive\Documents\myPDFFile.pdf"
'Save a range as PDF
rng.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=saveLocation
Next
End Sub
【问题讨论】:
-
您正在创建多个输出,但看起来您总是使用相同的文件位置来保存?
-
是的,你是对的。该文件可以保存到已保存 excel 文件的类似文件夹中。无需将文件保存在不同的位置。
-
但是您有多个文件要在运行中保存?你不能像这样导出一个文件。
-
是的,我必须一次将多个工作表范围转换为 PDF。那怎么可能呢。
-
转换成单个 PDF?工作表是否仅设置为打印区域列出的范围?