ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 数据有效性批量打印

数据有效性批量打印

作者:绿色风 分类: 时间:2022-08-18 浏览:111
楼主
houtian23
应该有不少人碰过,要对数据有效性的每一个条件打印,但这个得一个个选择,有效性条件多的时候容易遗漏,而且费时又费力,那有没有简单点的办法呢?

 
方法:添加VBA代码
  1. Sub 数据有效性打印()
  2.     Dim i As Integer
  3.     Dim Str As String
  4.     Dim Arr
  5.     Str = Range("A1").Validation.Formula1   '取数据有效性条件
  6.     Arr = Split(Str, ",")   '将数据有效性转成数组
  7.     '对数据有效性循环赋值并打印
  8.     For i = 0 To UBound(Arr)
  9.         Range("A1").Value = Arr(i)
  10.         ActiveSheet.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
  11.     Next
  12.    
  13. End Sub
思路说明:将数据有效性条件赋予变量,并用VBA函数SPLIT分离成数据,用FOR循环将数组每个值赋给数据有效性所在的单元格A1,并打印,PrintOut方法请参考VBA帮助,代码中Copies表示要打印多少份,两份就改为2,IgnorePrintAreas是是否忽略打印区域,本代码是不忽略(即仅打印打印区域。
ActiveSheet.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False,这句代码可参考PrintOut帮助改成你需要的打印参数,录制一个宏,复制替换掉这句代码即可搞定

附PrintOut方法帮助

Sheets.PrintOut 方法
打印对象。
语法

表达式.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)

表达式   一个代表 Sheets 对象的变量。

参数

名称 必选/可选 数据类型 说明
From 可选 Variant 打印的开始页号。如果省略此参数,则从起始位置开始打印。
To 可选 Variant 打印的终止页号。如果省略此参数,则打印至最后一页。
Copies 可选 Variant 打印份数。如果省略此参数,则只打印一份。
Preview 可选 Variant 如果为 True,Microsoft Excel 将在打印对象之前调用打印预览。如果为 False(或省略该参数),则立即打印对象。
ActivePrinter 可选 Variant 设置活动打印机的名称。
PrintToFile 可选 Variant 如果为 True,则打印到文件。如果没有指定 PrToFileName,Microsoft Excel 将提示用户输入要使用的输出文件的文件名。
Collate 可选 Variant 如果为 True,则逐份打印多个副本。
PrToFileName 可选 Variant 如果 PrintToFile 设为 True,则该参数指定要打印到的文件名。
IgnorePrintAreas 可选 Variant 如果为 True,则忽略打印区域并打印整个对象。

返回值
Variant

说明


From 和 To 所描述的“页”指的是要打印的页,并非指定工作表或工作簿中的全部页。




数据有效性批量打印.rar
2楼
李欣Nina

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap