csx 发表于 2021-7-20 21:17

分享一段完整vba代码 批量自动筛选并打印

分享 一段测试成功的vba代码:
代码说明:E列就是要筛选的列      E1~E8是表头       把E列要筛选的内容             复制到Z列 从Z1开始(注意去掉E列内容的重复项),本来是可以打印的但因为是测试   所以使用生成pdf   经过查看pdf            发现pdf文件生成完美   pdf几乎是所见即所得   所以打印也没问题(再者pdf批量打印工具软件也多)做这些之前记得把原表的打印参数设置好。


另外使用VBA这样自动筛选时   表尾 也还会存在!

Sub 自动筛选打印()
Range("Z1").Activate
    ActiveCell.CurrentRegion.Select
    Dim i As Integer
    i = Selection.Rows.Count
    Range("E8:E4521").Select
    Selection.AutoFilter
    For Each c In Range("Z1:Z" & i)
      Selection.AutoFilter field:=1, Criteria1:=c.Value
      'ActiveWindow.SelectedSheets.PrintOut Copies:=1
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="H:\wamp64\www\csx\down\0720\" + c.Value + ".pdf"
      Application.Wait (Now + TimeValue("00:00:10"))
    Next
End Sub
页: [1]
查看完整版本: 分享一段完整vba代码 批量自动筛选并打印