我的文件有4列(A B C D),A列中有“经理”,B栏中有员工编号,C& D.我想要做的是能够有一个打印宏,打印每个经理下的所有员工在PDF上,标题重复在顶部。因此,当点击打印宏时,它会询问“哪个经理”?然后点击它然后它将打印PDF。
这可能吗?我一直在研究循环,我认为这样做是可行的,但似乎无法弄清楚如何替换下面的“范围”。这是我在具有静态范围的另一个文件中使用的示例代码。
非常感谢任何帮助!谢谢。附:抱歉代码格式化,我似乎无法习惯Stack Overflow的编辑方式。
<div class="chart">
<div style="width: 49.81%;">1, $4,980,777</div>
<div style="width: 41.10%;">2, $4,109,778</div>
</div>
End Sub
答案 0 :(得分:1)
如果您有兴趣一次打印一位经理,那么您最好的选择可能就是使用AutoFilter。
Sub Dept_BGT_Print()
Dim Sel_Manager As String
'Specify headers to be repeated at the top
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$1"
.PrintTitleColumns = ""
End With
'Manager selection through simple Inputbox
Sel_Manager = InputBox("Which manager?")
'Insert autofilter for worksheet
Cells.Select
Selection.AutoFilter
'Select manager defined in inputbox
ActiveSheet.Range("A1", Range("D1").End(xlDown)).AutoFilter Field:=1, Criteria1:=Sel_Manager
'Select range to be printed and specify manager in filename
ActiveSheet.Range("A1", Range("D1").End(xlDown)).Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Employees for manager " & manager & ".pdf", Quality:=xlQualityStandard,
_IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
'remove autofilter
ActiveSheet.ShowAllData
End Sub