2016-12-12 16 views
0

印刷したい各ページに特定のヘッダーを印刷するには、次のコードがあります。 40枚以上を再生するので、印刷するまでにかなりの時間がかかります。上記のプロジェクト番号は決して変更されません。古いプロジェクト番号(F6)はF6の新しい値の前にとどまっています。印刷前の時間が長い、新しいヘッダーがない

Private Sub Workbook_BeforePrint(Cancel As Boolean) 


Dim WS As Worksheet 
For Each WS In Worksheets 
Application.PrintCommunication = False 
    With ActiveSheet.PageSetup.LeftHeaderPicture 
     .Filename = "I:\Logo.png" 
     .Height = 40 
     .Width = 150 

    End With 
     ActiveSheet.PageSetup.LeftHeader = "&G" & vbCr & "" & vbCr & "&10Project: " & Worksheets(1).Range("F6").Text 
     ActiveSheet.PageSetup.RightHeader = "p. " 
Application.PrintCommunication = True 
Next WS 
End Sub 
+2

は 'ワークシート(1).Range( "F6")を[値]が変更されていることをチェックするために' 'Debug.Print'またはMsgBox'を試してみてください。また、なぜあなたがあなたが各シートを反復するときに 'WS'変数を使うことができるときに' ActiveSheet'を使用しているのかわかりません... – Chrismas007

答えて

0

これを試してみてください:。

Private Sub Workbook_BeforePrint(Cancel As Boolean) 

    Dim WS As Worksheet 
    Application.PrintCommunication = False 

    For Each WS In Worksheets 

     With WS.PageSetup.LeftHeaderPicture 
      .Filename = "I:\Logo.png" 
      .Height = 40 
      .Width = 150 
     End With 

     WS.PageSetup.LeftHeader = "&G" & vbCr & vbCr & _ 
       "&10Project: " & Worksheets(1).Range("F6").Text 

     WS.PageSetup.RightHeader = "p. " 

    Next WS 

    Application.PrintCommunication = True 
End Sub 
関連する問題