我有一个循环遍历值列表的宏,并将每个值保存为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”。我错过了什么?
答案 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
。*但我可能完全错了