【发布时间】:2021-04-17 15:17:58
【问题描述】:
来自巴西的问候!
我已经用尽了我有限的知识并搜索了YT和各种论坛,但没有任何运气。 (我不是程序员或类似的东西)。让我们看看是否有一个愿意的灵魂可以帮助我。
我有一个包含多个电子表格的工作簿(基本上,它们是各种产品的数据源和其他价格表)。我正在尝试做的是将它们中的每一个以 PDF 格式导出到不同的文件夹。我设法将它们导出到一个文件夹,但这最终不是我想要的。我需要每个文件去一个特定的文件夹。我还设法让每个 PDF 文件名以从另一个电子表格源中提取的“月/年”结尾,但它只为一个电子表格完成这项工作,对于其他电子表格,它只重命名月/年部分,而不是我想要的整个文件名。
帮助! 这是我正在使用的源代码:
Dim fName As String
With Worksheets("Sheet4")
fName = ThisWorkbook.Worksheets("Sheet4").Range("G1").Value & ThisWorkbook.Worksheets("Sheet4").Range("I1").Value
End With
Worksheets("Sheet1").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\fred_\" & "TABELA" & Range("L2").Value & fName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Worksheets("Sheet2").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\John_\" & fName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Worksheets("Sheet3").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Sally_\" & fName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
我也尝试过这段代码,但我不知道如何更改编码以将每个 PDF 保存在各种特定文件夹中:
Sub ExportToPDFs()
' PDF Export Macro
' C:\*needs to go to diferent folders*
' Sheets(Array("Sheet1","Sheet2","Sheet3")).Select
Dim nm As String
Dim ws As Worksheet
Dim i As Variant, sheets_to_select As Variant
sheets_to_select = Array("Sheet1", "Sheet2", "Sheet3")
For Each i In sheets_to_select
ThisWorkbook.Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\*diferent folders*\" & "Price List" & i & ThisWorkbook.Sheets("Sheet1").Range("G4").Value & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Next i
End Sub
我做错了什么?顺便说一句,对生锈的英语感到抱歉!提前感谢您的帮助!
【问题讨论】:
-
您需要在 ExportAsFixed 语句的 FileName 参数中指定输出文件夹。
-
谢谢尼古拉斯。你在看第一个代码吗?如您所见,它为创建的每个 PDF 都有一个特定的文件夹。它完成了将每个 PDF 保存/导出到其文件夹的工作,但由于某种原因,文件的名称对于创建的所有 PDF 都是相同的,除了我在运行宏时所在的页面。我不知道为什么它没有出现在我拥有的其他表格上。