EXCEL中,vba编写自动筛选打印程序

日常工作为将excel逐个条件筛选,打印。即筛选下拉菜单有十个选项就筛十次,打印十次,有八个选项就筛八次,打印八次。可否通过宏或者VBA程序实现。
筛选条件列默认为第一列。

第1个回答  推荐于2016-04-14
EXCEL中,vba编写自动筛选打印程序,可以依照下面几种方式:
【1】点表中按钮,数据表的列数可以多少都一样的,
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
ActiveSheet.PrintOut
……
Application.EnableEvents = True
Cancel = True '取消打印
End Sub
VBA只有BeforePrint事件没有AfterPrint事件,用上面语句试试,可以模拟AfterPrint。
【2】Sub 自动筛选打印:
Dim d As Object
Set d = CreateObject("scripting.Dictionary")
Dim c As Range, <a href="https://www.baidu.com/s?wd=key&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPjwhPj01PHT4n1K9PyRY0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1nzP10vP1DYPWfLrjbYPWTvPf" target="_blank" class="baidu-highlight">key</a>
i = 2
Do
i = i + 1
Set c = Cells(i, 6)
d(c.Value) = ""
Loop Until c = ""
<a href="https://www.baidu.com/s?wd=key&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPjwhPj01PHT4n1K9PyRY0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1nzP10vP1DYPWfLrjbYPWTvPf" target="_blank" class="baidu-highlight">key</a> = d.<a href="https://www.baidu.com/s?wd=Key&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPjwhPj01PHT4n1K9PyRY0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1nzP10vP1DYPWfLrjbYPWTvPf" target="_blank" class="baidu-highlight">Key</a>s
For x = 0 To d.Count
ActiveSheet.UsedRange.AutoFilter Field:=6, Criteria1:=key(x)
ActiveSheet.PrintOut
<a href="https://www.baidu.com/s?wd=Next&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPjwhPj01PHT4n1K9PyRY0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1nzP10vP1DYPWfLrjbYPWTvPf" target="_blank" class="baidu-highlight">Next</a>
End Sub
第2个回答  推荐于2016-06-14

你是说按某一列分别打印出每种的表格,且有几条记录就打印几份,对吧?

点表中按钮,你数据表的列数你可以多少都一样的,

本回答被提问者采纳
第3个回答  2013-05-28
有问题专业解答,m我
相似回答