2016-10-14 33 views
0

我對VBA宏很新。我正在嘗試創建一個宏,它將設置列A-J和每40行的打印區域。對於每個工作表,總行數將會改變,但列將保持不變。VBA宏打印列A-J和每40行

到目前爲止,我只能得到正確打印的第一頁。這是我迄今爲止所擁有的。

-

Sub formatSheets() 


For i = 40 To 1350 Step 40 
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(i + 1, 1) 

Range("A1:J1350").Select 

Next 
End Sub 

-

非常感謝你的幫助。

-Mary

+0

你的代碼減去'Range(「A1:J1350」)。選擇'這是不需要的。爲我工作。 –

+0

感謝您的回覆。我嘗試過,但是當我打印表格時,它會打印所有列。我不確定我做錯了什麼。 – Mary

回答

0

我會重置所有頁面,休息和添加新的頁面,在休息之前設定每張紙上打印區域。

Sub formatSheets() 
    Dim ws As Worksheet 
    For Each ws In ActiveWindow.SelectedSheets 
     ws.PageSetup.PrintArea = Intersect(.Columns("A:J"), .UsedRange) 
     ws.ResetAllPageBreaks 
    End With 

    With ActiveWindow.SelectedSheets 


     For i = 40 To 1350 Step 40 
      .HPageBreaks.Add Before:=Cells(i + 1, 1) 
     Next 
    End With 
End Sub