2017-10-12 81 views
0

我试图创建一个宏,它将识别和PDF个人银行家的投资组合。宏将过滤银行家的姓名(只显示他们的投资组合),并将PDF和银行家的姓名放在PDF文件中。宏运行没有任何错误。它能够识别银行家,增加收藏,并通过所有银行家进行筛选。但是,它不包含任何东西。我一直无法确定问题。请帮忙!VBA Excel到PDF不工作在循环

我的代码:

Sub CreatePDFs() 
' 
' CreatePDFs Macro 
' 

' Identify distinct banker names in Column E and store in a collection 
Dim BankerCollection As Collection 

Dim Banker As Variant 
Dim Rng As Range 
Dim Cell As Range 

Set Rng = Range("E5", Range("E5").End(xlDown)) 
Set BankerCollection = New Collection 

On Error Resume Next 
For Each Cell In Rng.Cells 
BankerCollection.Add Cell.Value, CStr(Cell.Value) 
Next Cell 

' Loop through each banker name in the collection 

For Each Banker In BankerCollection 

' Copy each banker name to cell B1 
Range("B1").Value = Banker 
Range("B1").Font.Bold = True 

' filter on the banker name, and PDF with banker name in document title 
Range("E4", Range("E4").End(xlDown)).AutoFilter Field:=1, Criteria1:=Banker, VisibleDropDown:=False 

ThisFile = Banker + " Portfolio" 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisFile, OpenAfterPublish:=True 

Next Banker 

End Sub 
+2

“宏运行时没有任何错误。”当你用'On Error Resume Next'语句屏蔽错误时,你怎么知道它没有错误?注释掉线并查看是否发生错误。 – YowE3K

+0

您可以评论除Activesheet.ExportAs以外的所有其他行,并尝试在错误中归零。 –

+0

您是否在创建PDF时打开PDF?也许您在创建PDF文件后没有找到正确的文件夹。 – Jeeped

回答

-1

更改这行代码的

ThisFile = Banker + " Portfolio" 

与此

ThisFile = Banker & " Portfolio" 

PS事实证明,你没有让这个改变你的代码运行良好,没有改变。

+1

DV有两个原因。 1)用户在问题中没有这样的代码行。 2)'ThisFile = Banker +'Portfolio''这一行是完全有效的。 –

+0

@ScottHoltzman感谢您的纠正。我弄错了,当我第一次运行它时,它给了我错误的线路。 –

+0

Dim ThisFile as String at top?运行,如果我在 – QHarr