2016-09-14 6 views
1

VBAには新しく、私はpdfsを生成し保存するスクリプトを作成することができました。これまで私は、たとえば、ワークシートの各変化に別々のラインを作成しました:私がやりたい何私はループが必要だと思います

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

をお試しください。 – L42

答えて

0

のpdfのを生成するための別のサブ/関数を作成し、ループ内でそれを呼び出すこの

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 - ありがとうが、それは私にエラーを与えている - While(Sheets( "Sheet2")。Cells(i、1)<> "")値を格納する列への参照を追加する必要がありますか?再度ありがとう – Steve

+0

どのようなエラーがありますか? "Sheet2"という名前のワークシートですか?それを正しい名前に置き換えない場合。このシートのどの列にあなたが探しているデータがありますか?セル(i、1)の1は最初の列を表します。別の列にある場合は、正しい列番号で1を置き換えなければなりません – sh88

+0

私が受け取るエラーは、ランタイム1004です。アプリケーション定義またはオブジェクト定義のエラーです。私は以来、シートの名前を変更してコードを調整しましたが、役に立たないものです。 – Steve

関連する問題