本文位置:首页 > > 大陆新闻 >

Excel利用VBA批量选择数据有效性下拉列表中的项目并打印

文章发布时间:2015/5/27 12:29:00



中医恩师留下的治疗鼻炎绝方?《鼻通散》【消费者购买心理剖析】,你是属于哪种类型的?93.血管瘤效方清明祭祀知多少优美散文欣赏——故土深深情

高三学生每日七问探访秦城监狱中国十幅珍宝级国画背景音乐欣赏林夕唱过歌吗?唱过的话有哪些歌?养生一点通(35)中国的十大国粹,你知道多少?似水流年,恋上文字!宣传广告纸卷成的置物篮【黄帝内经】巧洗澡暗藏的养生祛病小技巧,赶走六种身体不适精美的分割线素材(二)值得学习的一席话教育界的革命中医皮肤科民族民间方2明末士大夫为何不为亡国,却为剃发而战金庸全集中国(上海)自贸区在注视中前行睿智的父亲这样教育孩子!《菜根谭》:全文及译解(下卷)[杞浇]澶涓浗璋滆澶т細姝f湀鍗佷笁鍏ㄩ儴姣旇禌璋滈五大招财摆件大讲究之貔貅中医经典:“人要长生、肠要常清”、看完转给有缘之人!老公与老婆吵架后的悔过书一,幽默的智慧【星光灿烂】李若彤东坡肉的详细做法

NSK 7336 BDB 

美国穷人是这样子的团队协作——谁是真正需要帮助的人?中小经销商的四种“死法”东坡肉的详细做法

 

有时我们会在Excel中利用数据有效性制作一个下拉列表,通过选择下拉列表中的不同项目来的得到不同的表格内容,类似Word中的邮件合并。如下例为某公司员工信息表,该工作簿包含两个工作表,一个工作表为“员工资料”,其中包含所有人员的基本资料,另一个工作表为“打印员工信息表”,用VLOOKUP函数提取“员工资料”工作表的内容,将某个员工的资料及电子照片集中到一页来打印,如下图。该工作表的B3单元格用“数据有效性(或数据验证)→设置→序列”设置了数据有效性下拉列表,通过该下拉列表来选择不同的员工。

通过数据有效性下拉列表来选择一个项目并打印

当工作表中的员工数量较多时,手动逐一选择姓名并打印显得很繁琐。遇到这种情况,不妨利用下面的宏代码将员工信息表一次全部打印出来,十分方便。方法是:

按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在代码窗口中粘贴下列代码:

Sub 批量提取数据有效性下拉列表项目并打印()
Dim rCell As Range
Dim Arr, m

On Error Resume Next
Set rCell = Worksheets("打印员工信息表").Range("B3")

'将单元格中的数据有效性序列提取到数组
With rCell.Validation
If .Type = 3 Then
If Range(.Formula1) Is Nothing Then
'当数据有效性序列的来源不是单元格区域时
Arr = Split(.Formula1, ",")
Else
Arr = Range(.Formula1).Value
End If
'批量打印
If IsArray(Arr) Then
For Each m In Arr
If m <> "" Then
rCell.Value = m
Worksheets("打印员工信息表").PrintOut
End If
Next
Else
rCell.Value = Arr
Worksheets("打印员工信息表").PrintOut
End If
End If
End With
End Sub

运行后即可将每个员工的资料页依次打印出来。

说明:

1.上述代码会检测B3单元格中数据有效性“序列”的列表源,将其中的每个项目依次赋值给B3单元格并打印工作表。

2.“Worksheets("打印员工信息表")”中指定的工作表名称和“Range("B3")”中指定的单元格需根据实际进行修改。




不存在相应的目录