2017-10-28 4 views
0

シート1の特定のフィールドを自動的に入力し、他のシートのテーブルから値を検索して戻り値を返します。sheetTable)。したがって、セルE5を変更した後、シート1は基本的に印刷準備が整いました。Excelは、私は、次の目標のために右のコードを見つけるためにいくつかの困難を抱えている

私の目標は、sheetTable上の列の値の範囲を選択し、それらの一つ一つがシート1にE5をセルに割り当て、それぞれを印刷することです。

だから私は値を持つ3つのセルを選択すると言うことができます:45、50と66、私はマクロを実行すると、それはそれはE5と印刷次の使用例は、シート1のセルに50を割り当てます、E5および印刷次の使用例は、シート1をセルに45を割り当てますであり、最後にセルE5に66を割り当て、シート1を印刷します。

また、私はそれぞれのものをPDFで印刷する必要があり、結果のPDFファイル名はE5セル[基本的には範囲(e5).value.pdfのような値です。

+0

は、他のポストに何の答えを得ませんでした。この1つでよりよく説明されました –

+0

あなたは以前の質問を[編集](https://stackoverflow.com/posts/46972036/edit)できませんでしたか? (そして、他の質問には答えがありました**まだ誰かがあなたを助けようとしています**) – YowE3K

答えて

1
Sub printSelectedCells() 
    Dim Path As String 
    Dim Cell As Range 

    Path = "C:\Users\XXXXX\Desktop\" 'Change to suite. 
    'Alternatively you let user select folder by using Application.FileDialog(msoFileDialogFolderPicker) 

    For Each Cell In Selection 
     Sheet1.Range("E5").Value2 = Cell.Value2 
     Sheet1.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
      Path & Sheet1.Range("E5").Value2 & ".pdf", Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
      True 
    Next 

End Sub 
+0

これは、実行時エラー '424' Sheet1.Range( "E5")を返します。Value2 = Cell.Value2。 2つのサブの統合方法 –

+0

Allright。それは今良いです。大いに感謝する! –

0

一度に1つの問題に対処しましょう。以下は、セルE5に記入し、各シートを順番に印刷しますか?

Sub Fill_Print() 
    Dim Rng As Range, r As Range 
    Dim sh1 As Worksheet, shTable As Worksheet 

    Set sh1 = Sheets("Sheet1") 
    Set shTable = Sheets("sheetTable") 
    Set Rng = Selection 

    For Each r In Rng 
     sh1.Range("E5").Value = r.Value 
     sh1.PrintOut 
    Next r 
End Sub 
+0

これは素晴らしい作品です! –

+0

大丈夫です。 PDFファイルを保存する場所のファイルパスがありますか? – Calico

関連する問題