操作方法
先说一个具体的实例:有一个表格sheet1,A列每个营业员的营业情况,因为营业员的记录有重复,现在要不重复提取每个营业员姓名到另一个表sheet1A列那里进行统计。这时就可以自己制定一个宏,今后也可以重复使用。
打开VBA编辑器:点击开发工具——点击Visual Basic,打开VBA编辑器(也可以直接按(ALT+F11)——点击插入——模块,打开宏的模块编辑界面。
制定宏:在宏的模块编辑界面,输入如下不重复提取姓名的VBA代码。 Sub 提取不重复姓名() Set d = CreateObject("Scripting.Dictionary") '设置字典 arr = Sheets("sheet1").UsedRange() '把表1所有数据设置成一个数组 For i = 2 To UBound(arr) '设置从第2行开始读取 If arr(i, 1) <> "" Then d(arr(i, 1)) = "" '如果第2行开始第一列(A列)数据不为空就用字典法提取 Next i Sheets("sheet2").[a2].Resize(d.Count, 1) = WorksheetFunction.Transpose(d.keys) '选择表2的A2单元并粘贴不重复数据 End Sub 输入完成后点击保存退出
运行宏:打开sheet2表格——点击开发工具——点击宏——选择刚刚设置的宏:提取不重复姓名——点击:执行。这是很快就得到数据。今后就可以充分利用这个宏来实现相同的操作。不用再一步步去反复操作了。
利用控件编辑和运行宏:点击sheet2——点击开发工具——插入——表单控件下的窗体控件按钮——在弹出的指定宏给宏命名时就选择刚刚编辑的宏(提取不重复姓名)——点击确定。如果有什么要修改可以点编辑——把控件的名字改成:提取不重复姓名。这样就可以点击控件就能实现运行宏的功能了。