保存为PDF循环文件名问题

时间:2018-01-19 14:14:29

标签: excel vba excel-vba pdf

我有一个循环遍历值列表的宏,并将每个值保存为PDF,其名称是单元格A7中该列表中的值。它完全正常工作,但我无法调整文件名以包含A6中的值。我使用VBA相对较新,所以这可能很容易解决。这是工作代码:

Dim myFolder As String
Dim myFileName As String

myFolder = "C:\Users\JonDoe\Documents\"

For Each dealer In Range("S8:S15")
        Range("A7").Value = dealer
        myFileName = dealer & ".pdf"
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        myFolder & myFileName, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False

Next
End Sub

我尝试将A6中的值添加到myFileName中,如下所示:

Sub printDealerPagePDF()

Dim myFolder As String
Dim myFileName As String

myFolder = "C:\Users\JonDoe\Documents\"

For Each dealer In Range("S8:S15")
        Range("A7").Value = dealer
        Range("A6").Value = dealername
        myFileName = dealer & dealername & ".pdf"
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        myFolder & myFileName, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False

Next
End Sub

宏仍然可以正常运行,但它不会在文件名中添加“dealername”。我错过了什么?

2 个答案:

答案 0 :(得分:3)

问题是您实际上没有为“经销商名称”分配值。

dealername = Range("A6").Value

上面的代码行应该解决问题。 (经销商也一样)

答案 1 :(得分:0)

*您尝试做的是将Range("S8:S15")中的每个值循环到A7并打印页面关闭为PDF文件。

您似乎在问为什么dealername不存在。这是因为你没有定义它。它在哪里? A6中是否有一个公式可能是VLOOKUP收集它的公式?

在哪种情况下

 dealername = Range("A6").Value
 Range("A7").Value = dealer

应该有用。

但是,如果它与每个dealer一起(在Range("S8:S15")中) - 可能在列T中并且需要在打印之前加载到A6然后使用方法:

 dealername = dealer.Offset(0,1).Value
 Range("A7").Value = dealer
 Range("A6").Value = dealername 

。*但我可能完全错了