gpt4 book ai didi

excel - 通过 VBA 代码将多张纸导出为 .pdf

转载 作者:行者123 更新时间:2023-12-02 08:47:12 32 4
gpt4 key购买 nike

我看过这个问题,但它并不能完全回答我的问题 - excel vba not exporting pagesetup to pdf correctly

在使用代码创建 .pdf 输出时,我遇到了同样的问题,即每张纸中的指定范围未导出。每张工作表上的所有内容都会导出,因此每个工作表都分布在两个或更多页面上。每张纸的打印范围设置为将指定区域打印到一张纸上。

我尝试调整链接中的代码,但它似乎不适用于多个工作表。

我尝试以其未适应的形式使用的代码

Sub ClientPDFOutput()

If Sheets("File Data").Range("FD_FileName") = "" Then
' MsgBox ("Save the file before exporting to a .pdf fomrat"), vbInformation, "Save File"

' Exit Sub
Else
End If

ActiveSheet.Unprotect Password:=strPassword

Range("UI_Status") = "Creating client PDF output - Please wait"

SelectSheets

Application.ScreenUpdating = False

Sheets(arrSheets).Select

strFilename = "Test"

Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
filename:=ActiveWorkbook.Path & "\" & strFilename & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=True, _
OpenAfterPublish:=False

Sheets("User Input").Select

Range("UI_Status") = "Client .pdf output created and saved"

ActiveSheet.Protect Password:=strPassword

Application.ScreenUpdating = True

MsgBox ("The client output in .pdf format has been created and saved"), vbInformation, ".pdf Created"

End Sub

并且

Sub SelectSheets()

Dim rngSheets As Range

Set rngSheets = Sheets("File Data").Range("D_OutputSheets")

If rngSheets.Count = 1 Then
arrSheets = rngSheets.Value2
Else
arrSheets = Application.Transpose(rngSheets.Value2)
End If

End Sub

经过更多的实验,我确定每页上的打印范围都偏离了,因此更正了这些。

我添加了代码来选择每个工作表的打印范围,然后将所有工作表选择为工作表数组的一部分,但数组的第一张工作表中的打印范围将在所有工作表中重复。因此,如果工作表 1 中的范围是 B4:P61,工作表 2 的打印范围是 B4:M48,则在选择工作表阵列时,工作表 2 会选择 B4:P61。

这将打印出选定的范围,该范围对于工作表 1 是正确的,但对于其余工作表是错误的。

当我通过选择所有工作表、文件、导出来手动执行此操作时,所有工作表打印范围都会导出,那么为什么当记录并放入例程时它会被忽略?

最佳答案

请尝试更改 IgnorePrintAreas 属性。

Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
filename:=ActiveWorkbook.Path & "\" & strFilename & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False

关于excel - 通过 VBA 代码将多张纸导出为 .pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41395614/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com