2016-09-14 79 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