前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ExcelVBA学习之一键实现分类筛选并直接打印

ExcelVBA学习之一键实现分类筛选并直接打印

作者头像
哆哆Excel
发布2022-10-25 11:09:36
1.7K0
发布2022-10-25 11:09:36
举报
文章被收录于专栏:哆哆Excel

ExcelVBA学习之一键实现分类筛选并直接打印

ExcelVBA学习之一键实现分类筛选并直接打印

【问题】:有一个表格有几各种分类”应聘学科”、”安排单位”、”片区”、“类别”,安要求是要以4种分类进行分别进行“分类”并“打印”出来,

【难题】:天啊,本来如果只要一种类别,那我就可以有两种常规的方法可以解决:

====例如:以片区分类为例===

传统方法(1) “数据”~“筛选”,筛选一个打印一个,解决;

传统方法(2)以片区进行排序,再分以每一种情况的最后添加一分页符,进行打印,可以解决;

◆◆◆现在的问题要几类都要分别做一次,想想也~~~~~~~~时间也不少啊?

【目标】:一键完成,方便快捷,

【代码如下】:

Sub AutoFilterAndPrintOut()

Dim fz_row, data_col, data_row, slt_rng_col

Dim arr, brr, i As Long

Dim rg As Range, fz_sht As Worksheet, data_sht As Worksheet, slt_rng AsRange, p_rng

Dim objDic As Object

Set slt_rng = Application.InputBox("请框选拆分依据列!只能选择单列单元格区域!", Title:="提示", Type:=8)

'========用户选择的拆分依据列

slt_rng_col = slt_rng.Column

MsgBox "准备按第【" &ActiveSheet.Cells(1, slt_rng_col) & "】列进行分类筛选并打印"

Set rg = ActiveSheet.Range("a1").CurrentRegion

arr = ActiveSheet.Range("a1").CurrentRegion

Set objDic = CreateObject("scripting.dictionary")

For i = 2 To UBound(arr)

objDic(arr(i, slt_rng_col)) = ""

Next

brr = objDic.keys

For i = LBound(brr) To UBound(brr)

rg.AutoFilter field:=slt_rng_col, Criteria1:=brr(i) '其中的“slt_rng_col”就是所要筛选的列,

ActiveSheet.PrintPreview

' ActiveSheet.PrintOut

Next i

rg.AutoFilter

MsgBox "打印完成"

End Sub

【运行~~~成功】

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档