如何使用VBA将位置和名称保存为单元格值的文件

有人可以告诉我我做错了什么,我是相当新的VBA,并有以下代码。 我想打开几个excel文件,并将“现金”选项卡保存为特定文件夹的pdf。 我遇到的问题是,它试图将文件夹保存到“testing”文件夹,而不是由“单元格(r,3)”指示的文件夹,所以我得到一个错误后,它保存第一个PDF文件,因为他们有一样的名字。 任何帮助,将不胜感激!

Sub Cash_PDF_() r = 2 Do While Cells(r, 5) <> "" Workbooks.Open FileName:="H:\Investment\Fund Folders\" & Cells(r, 3) & "\" & Cells(r, 5), _ ReadOnly:=True, UpdateLinks:=0 Sheets("Cash").Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:="C:\Users\Desktop\Test\" & Cells(r, 3) & "\Cash.pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True ActiveWindow.Close SaveChanges:=False r = r + 1 Loop End Sub 

Cells不合格时,指的是活动工作表。 您更改活动工作表,所以它不是指你想要的。

 Sub Cash_PDF_() Dim ws As Worksheet Dim wb As Workbook Dim r As Long Set ws = ActiveSheet r = 2 Do While ws.Cells(r, 5) <> "" Set wb = Workbooks.Open(FileName:="H:\Investment\Fund Folders\" & ws.Cells(r, 3) & "\" & ws.Cells(r, 5), _ ReadOnly:=True, UpdateLinks:=0) wb.Sheets("Cash").ExportAsFixedFormat _ Type:=xlTypePDF, _ FileName:="C:\Users\Desktop\Test\" & ws.Cells(r, 3) & "\Cash.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True wb.Close SaveChanges:=False r = r + 1 Loop End Sub