2016-09-14 77 views
1

VBA非常新,我设法创建脚本来生成和保存/电子邮件的PDF文件。到目前为止,我已经创建了一个工作表中的每个改变一个单独的行,例如:我认为我需要循环

Sheets("AM Dashboard").Select 
Range("B5").Select 
ActiveCell.FormulaR1C1 = "Employee1" 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "C:\Users\Google Drive\Sales Reports\Employee1\Sales Dashboard_Employee1" & " " & Format(Date, "yyyymmdd") & ".pdf", _ 
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
    :=False, OpenAfterPublish:=False 
Range("B5").Select 
ActiveCell.FormulaR1C1 = "Employee2" 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "C:\Users\Google Drive\Sales Reports\Employee2\Sales Dashboard_Employee2" & " " & Format(Date, "yyyymmdd") & ".pdf", _ 
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
    :=False, OpenAfterPublish:=False 

我想这样做的是通过在Sheet2的A列的列表的代码循环,直到电池是空的,填充AM仪表板B5中的相应值。

因此,例如,A1将包含Employee1,A2 =和Employee2,A3 = Employee3等

+3

创建一个独立的子/函数生成的PDF文件,并在一个循环中调用它。 – L42

回答

0

试试这个

Sheets("AM Dashboard").Select 
Range("B5").Select 

While (Sheets("Sheet2").Cells(i, 1) <> "") 
    ActiveCell.FormulaR1C1 = Sheets("Sheet2").Cells(i, 1) 
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
     "C:\Users\Google Drive\Sales Reports\Employee" & Sheets("Sheet2").Cells(i, 1) & "\Sales Dashboard_Employee" & Sheets("Sheet2").Cells(i, 1) & "" & " " & Format(Date, "yyyymmdd") & ".pdf", _ 
     Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
     :=False, OpenAfterPublish:=False 
    i = i + 1 
Wend 
+0

sh88 - 谢谢,但它给了我一个错误的线 - 虽然(表(“Sheet2”)。Cells(i,1)<>“”)我需要添加一个引用到列的价值?再次感谢 – Steve

+0

什么错误?你的工作表名为“Sheet2”?如果没有用正确的名称替换它。本表中的哪一栏是您要查找的数据?那么单元格中的1(i,1)代表第一列。如果它在另一列中必须用正确的列号替换1 – sh88

+0

我收到的错误是运行时1004.应用程序定义或对象定义的错误。我已经重新命名了表格并调整了代码,但无济于事。 – Steve