2016-11-08 4 views
0

私はすべての従業員の賃金/ボーナスを含むかなり特定のスプレッドシートを持っています。各従業員は自分自身に4行(給与の%として給与/賞与/給与%デルタ/ボーナス)を持っています。私が抱えている問題は、複数のページに行くと従業員のカットオフがあるマネージャーがいるため、1 x 1に収まるように切り替えましたが、明らかにあまりにも凝縮されています。 4行のグループでマクロの印刷を行う方法はありますか?あるいは、同じページに各従業員の4行を印刷するようにしましょう(給与の%として給与/ボーナス/給与%デルタ/ボーナス)。ありがとうございます!4行のグループでのVBA印刷

Private Sub CommandButton1_Click() 
Dim Sel_Manager As String 
'Specify headers to be repeated at the top 
With ActiveSheet.PageSetup 
     .PrintTitleRows = "$5:$10" 
     .PrintTitleColumns = "$B:$M" 
     .Orientation = xlLandscape 
     .Zoom = False 
     .FitToPagesWide = 1 
     .FitToPagesTall = 1 
End With 

'Manager selection through simple Inputbox 
Sel_Manager = ComboBox1 
'Insert autofilter for worksheet 
Cells.Select 
Selection.AutoFilter 
'Select manager defined in inputbox 
ActiveSheet.Range("B10", Range("M10").End(xlDown)).AutoFilter Field:=1, Criteria1:=Sel_Manager 
'Select range to be printed and specify manager in filename 
ActiveSheet.Range("B10", Range("M10").End(xlDown)).Select 

Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
Sel_Manager + ".pdf", Quality:=xlQualityStandard, _ 
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True 

    ActiveSheet.ShowAllData 

End Sub 

答えて

1

私はあなたにとってより良い解決策があると思います。印刷領域をページ、x行ごとに分割できます。この例では、すべてのページに100行が表示されます:

LastRow = Sheets("Raport").Range("B" & Rows.Count).End(xlUp).Row 
Sheets("Raport").PageSetup.PrintArea = "$A$1:$G$" & LastRow 

t = 4 ' number of title rows 
r = 96 ' number of rows on one page (without title rows) 
nPages = Application.RoundUp((LastRow - 4)/96, 0) 'nPages gives you number of pages. 
Sheets("Raport").ResetAllPageBreaks 
Sheets("Raport").VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 ' this may not be necessary for your data 

On Error Resume Next 
If nPages > 1 Then 
    For i = 1 To nPages - 1 
     ActiveSheet.HPageBreaks.Add Before:=ActiveSheet.Range("A" & 5 + i * 96) 
     Set ActiveSheet.HPageBreaks(i).Location = Range("A" & 5 + i * 96) 
    Next i 
Else 
    ActiveSheet.HPageBreaks(1).DragOff Direction:=xlDown, RegionIndex:=1 
End If 
On Error GoTo 0