本帖最后由 doitbest 于 2014-5-7 17:19 编辑
1、“高级筛选”对话框 application.Dialogs(xlDialogFilterAdvanced).Showarg1:=xlFilterInPlace,arg2:=activesheet.usedrange,arg3:=[criterior] 参数1:在原区域显示筛选结果。参数2:列表区域。参数3:条件区域 application.Dialogs(xlDialogFilterAdvanced).Showarg1:=xlFilterCopy,arg2:=activesheet.usedrange,arg3:=[criterior],arg4:=sheets(sheets.Count).[a1],arg5:=true 参数1:将筛选出的数据复制到新位置 参数4:目标区域 参数5:选择不重复记录
2、“打开”对话框 Application.Dialogs(xlDialogOpen).Showarg1:="*t*.txt" 搜索当前文本夹中文件名中含有t关键字的文本文件 Application.Dialogs(xlDialogOpen).Showarg1:="d:\*.txt" 可以改变当前目录,在D盘搜索文本文件 Application.Dialogs(xlDialogOpen).Showarg1:="d:\*.txt;*.doc;*.xls" 可以搜索D盘的文本文件、WORD文本和EXCEL文件,具体可以自己定义,注意中间用分号间隔。此语句非常实用,仍然记得自己在初次发现时的狂喜心情,隆重推荐!!! Application.Dialogs(xlDialogOpen).Showarg1:="d:\*1*;*2*" 搜索D盘含有1或2关键字的文件,也很实用 application.Dialogs(1).Showarg1:=CreateObject("Wscript.Shell").SpecialFolders("Desktop")& "\*.lnk" 搜索桌面的快捷方式 application.Dialogs(1).Showarg1:=CreateObject("Wscript.Shell").SpecialFolders("favorites")& "\*.*" 搜索收藏夹文件夹 application.Dialogs(1).Showarg1:=CreateObject("Wscript.Shell").SpecialFolders("startmenu")& "\*.*" 搜索开始菜单所有文件 application.Dialogs(1).Showarg1:=CreateObject("Wscript.Shell").SpecialFolders("mydocuments")& "\*.xls;*.doc" 搜索“我的文档”中的EXCEL及WORD文件 application.Dialogs(1).Show arg1:="d:\??学生*.xls" 搜索D盘中关键字为学生的EXCEL文件,这里两种通配符都可以使用 此外常用的特殊文件夹还有Startup、Fonts、Programs、Recent、SendTo、StartMenu、Templates
3、“标准字体”对话框 这个对话框更改的不是单元格格式,而是横纵座标的字体字号等格式,太神奇了!!!,而且这种更改只对当前工作薄有效,即使关闭EXCEL和关机,设置仍然保留。 参数说明: name_text | arg1 | 字体 | size_num | arg2 | 字号 | bold | arg3 | 粗体 | italic | arg4 | 斜体 | underline | arg5 | 下划线 | strike | arg6 | 删除线 | color | arg7 | 字体颜色 |
Application.Dialogs(xlDialogStandardFont).Showarg1:="华文彩云",arg2:=20,arg3:=true 以上修改字体、字号和粗体,如果设置成各种西方字体,将使工作表画面呈现千变万化,充满情趣的效果,如果用Wingdings等三种字体,简直就成画板了!,当然,在游戏之余,还是要用庄重醒目的字体比较好。
4、“对齐方式”对话框 application.Dialogs(xlDialogAlignment).Showarg1:=3,arg2:=1 水平居中\自动换行 application.Dialogs(xlDialogAlignment).Showarg1:=2 左对齐 application.Dialogs(xlDialogAlignment).Showarg6:=1 缩小字体填充 application.Dialogs(xlDialogAlignment).Showarg8:=1 合并单元格 根据帮助说明,“对齐方式”对话框共有五个参数,分别为horiz_align, wrap, vert_align, orientation,add_indent,但实际说明并不完整,或者是一个“bug”,“缩小字体填充”和“合并单元格”参数说明中均没有,实际其分别位于参数6和参数8。这些都是不信邪大胆试的结果,大家在实践中要引以为鉴。
5、“页面设置”对话框 Application.Dialogs(7).Showarg9:=true,arg10:=true,arg11:=2方向横向,水平垂直居中 Application.Dialogs(7).Showarg3:=0,arg4:=0,arg5:=0,arg6:=0,arg18:=0,arg19:=0 页边距的六个数值参数均设置为0 Application.Dialogs(7).Show arg12:=9 纸型为A4 Application.Dialogs(7).Show arg13:=80 缩放比例为80% Application.Dialogs(7).Show arg2:="共" & (ActiveSheet.HPageBreaks.Count +1) * (ActiveSheet.VPageBreaks.Count + 1) & "页" 页脚设置为“共*页” Application.Dialogs(7).Show arg1:="第1页"这个是设置页眉,没有什么实际用途,原因是数字是死的,不会变动。无法模拟出自定义页眉中的类似WORD域的效果。 注意:页眉页脚 打印标题行 打印标题等参数不能进行默认设置,参数中也没有此项,不知道为什么。
6、“打印”对话框 Application.Dialogs(xlDialogPrint).Showarg4:=5 打印4份 application.Dialogs(8).Show arg2:=1,arg3:=2 打印1-2页 application.Dialogs(8).Show arg12:=1 打印选定区域。Arg12其他选项:2活动工作表 3整个工作薄
7、 “特殊选定”对话框(xlDialogSelectSpecial) application.Dialogs(132).Show arg1:=3,arg2:=1定位公式-数值 application.Dialogs(132).Show arg1:=2,arg2:=3定位常量-公式文本 application.Dialogs(132).Showarg1:=2,arg2:=23 定位常量-全部 application.Dialogs(132).Show arg1:=4 定位空值 application.Dialogs(132).Show arg1:=5 定位当前区域 application.Dialogs(132).Show arg1:=6 定位当前数组 application.Dialogs(132).Show arg1:=7 定位行内容差异单元格 application.Dialogs(132).Show arg1:=8 定位列内容差异单元格 application.Dialogs(132).Show arg1:=9 定位引用单元格 application.Dialogs(132).Show arg1:=10 定位从属单元格 application.Dialogs(132).Showarg1:=10,arg3:=2 定位所有级别从属单元格 application.Dialogs(132).Show arg1:=11 定位最后一个单元格 application.Dialogs(132).Show arg1:=12 定位可见单元格 application.Dialogs(132).Show arg1:=13 定位对象 application.Dialogs(132).Show arg1:=14 定位条件格式 application.Dialogs(132).Show arg1:=15 定位全部数据有效性,在帮助“Range.SpecialCells 方法”中,定位有效性的类型值为-4174,用在定位对话框参数中就会出错。arg1:=15这种结果全是一点点摸索出来的,诸如此类的情况很多。大家用到其它对话框时往往要自己反复尝试,不要轻易放弃和否定。 application.Dialogs(132).Showarg1:=15,arg3:=2 定位相同数据有效性
8、“分列”对话框 application.Dialogs(xlDialogTextToColumns).Showarg2:=2 分列-文件类型为固定宽度 application.Dialogs(xlDialogTextToColumns).Showarg2:=1,arg5:=0,arg6:=1,arg7:=1,arg8:=1 分列-分隔符号为分号\逗号\空格 application.Dialogs(xlDialogTextToColumns).Showarg2:=2,arg11:=Array(0, 2) 分列-列数据类型为文本 application.Dialogs(xlDialogTextToColumns).Showarg2:=2,arg11:=Array(0, 5) 分列-列数据类型为YMD格式时间 application.Dialogs(xlDialogTextToColumns).Showarg2:=2,arg11:=Array(0, 3) 分列-列数据类型为MDY格式时间
9、“对齐方式”对话框 application.Dialogs(xlDialogAlignment).Showarg1:=3,arg2:=1 水平居中\自动换行 application.Dialogs(xlDialogAlignment).Showarg1:=2 左对齐 application.Dialogs(xlDialogAlignment).Showarg6:=1 缩小字体填充 application.Dialogs(xlDialogAlignment).Showarg8:=1 合并单元格
10、选择性粘贴对话框 application.Dialogs(53).Show arg1:=7 边框除外 application.Dialogs(53).Show arg1:=8 粘贴复制的列宽 application.Dialogs(53).Show arg1:=11 公式和数字格式 application.Dialogs(53).Show arg1:=6 粘贴有效性 application.Dialogs(53).Showarg1:=2,arg4:=true 粘贴公式/转置 arg1参数的其他选项值:3数值 4格式5批注 12粘贴值和数字格式 注意以上语句运行前,要有单元格处于被复制状态,否则运行出错。也可以用以下宏增强通用性,防止出错。 Public Sub abc1() If Application.CutCopyMode = xlCopy Then Application.Dialogs(53).Show arg1:=2, arg4:=True End If End Sub
11、“查找公式”对话框 application.Dialogs(64).Show arg3:=1 1为全部匹配,2为部分匹配 application.Dialogs(64).Show arg2:=2 查找范围:1公式2值 3批注 application.Dialogs(64).Show arg6:=true 区分大小写 application.Dialogs(64).Show arg4:=1 按行搜索,值2为按列搜索
12、“替换公式”对话框 application.Dialogs(130).Showarg1:="*abc",arg2:="abc",arg3:=2 将"*abc"替换为”abc”,以部分匹配方式替换
13、“另存为”对话框 application.Dialogs(xlDialogSaveAs).Showarg1:=CreateObject("Wscript.Shell").SpecialFolders("desktop")& "\" & [a1] & ".xls" 保存文件到桌面,默认文件名为A1单元格值。 还可以更智能一些,如果A1为空,则以A列第一个值为默认文件名 Public Sub abc() Dim folder, name folder =CreateObject("Wscript.Shell").SpecialFolders("desktop")& "\" If [a1] <> "" Then name =[a1] Else name = [a:a].Find("*") Application.Dialogs(xlDialogSaveAs).Showarg1:=folder & name & ".xls" End Sub
14、“创建分类汇总”对话框 application.Dialogs(xlDialogSubtotalCreate).Showarg2:=2 分类汇总函数为计数,其他参数:平均值为3,最大值为4,最小值为5,数值计数为7标准偏差为9 application.Dialogs(xlDialogSubtotalCreate).Showarg4:=false 替换当前分类汇总为否 application.Dialogs(xlDialogSubtotalCreate).Showarg5:=true 每组数据分页为是 application.Dialogs(xlDialogSubtotalCreate).Showarg6:=false 汇总结果显示在下方选项为否,arg6:=true则是结果显示在上方 application.Dialogs(xlDialogSubtotalCreate).Showarg2:=2,arg3:=1 对第一列进行计数 application.Dialogs(xlDialogSubtotalCreate).Showarg3:=array(2,3) 对第二三列进行求和 由于分类汇总对话框不能准确确定要进行计算的列,通过代码可以弥补这一不足。以下的程序即可以实现以上功能。假定数据表第一列为字段名,第二列以上为数据记录,通过判断数据为数值型确定要计算的列数组。分类汇总对话框则根据数据自动标识要求和的列 Public Sub abc() Dim ar(), i, m For i = 2 ToRange("a1").CurrentRegion.Columns.Count IfIsNumeric(Cells(2, i)) Then m = m + 1 ReDim Preserve ar(1 To m) ar(m) = i EndIf Next Application.Dialogs(xlDialogSubtotalCreate).Showarg3:=ar End Sub
15、“添加列表选项”对话框 application.Dialogs(xlDialogOptionsListsAdd).Show EXCEL各版本进入自定义序列的路径都比较繁琐,用以上语句可以直接进入,相当于快捷方式了。
16、“计算”对话框 application.Dialogs(xlDialogCalculation).Showarg6:=true 以显示精度为准(这个比较有用,对一个小数,设置以显示精度为准,则减少小数位后就不可恢复了。相当于编辑小数值,而不是格式调整) application.Dialogs(32).Show arg1:=3 设置计算模式为“手动重算”,参数值1为“自动重算” application.Dialogs(32).Showarg1:=3,arg8:=false 保存前自动重算选项为否,这样可以加快文件保存速度。注意arg8和arg1必须同时设置才有效 这个对话框参数不少,但以前面三种应用最为常用。
17、“单元格保护”对话框 application.Dialogs(xlDialogCellProtection).Showarg1:=true,arg2:=true 设置单元格保护,锁定和隐藏两个选项均为是
18、“清除”对话框 application.Dialogs(xlDialogClear).Showarg1:=2 将清除格式设为默认选项,因为这一选项是最常用的 application.Dialogs(xlDialogClear).Showarg1:=iif(not selection(1).Comment is nothing,4,2) 加入一种更“人性化”的判断,如果第一个选定单元格中含有批注,则清除默认选项为“批注”,对有类似要求的用户这是一个较好的参考,但也很可能画蛇添足,多此一举,自己灵活把握吧 Application.Dialogs(xlDialogClear).Showarg1:=5将清除超链接设为默认选项。对此还可以用一组宏语句实现更智能化的应用,如果单元格存在超链接,则将清除超链接设为默认选项,否则将清除格式设为默认选项。代码如下: Sub abc() On Error Resume Next Debug.PrintSelection(1).Hyperlinks(1).Address If Err.Number > 0 Then Application.Dialogs(xlDialogClear).Show arg1:=2 Else Application.Dialogs(xlDialogClear).Show arg1:=5 End If End Sub
19、合并计算 application.Dialogs(xlDialogConsolidate).Showarg1:=Array("Sheet1!R1C1:R4C2","Sheet2!R1C1:R5C2") 设定合并计算的所有引用位置,arg1的参数值是一个数组,包含各个参与合并的区域。如果自动准确添加所有引用位置,则需要用宏来实现。例如: PublicSub abc() Dimar(), i, m For i= 1 To ActiveSheet.Index - 1 m = m+ 1 ReDim Preserve ar(1 To m) ar(m) = Sheets(i).Name & "!"& Sheets(i).Range("a1").CurrentRegion.Address(ReferenceStyle:=xlR1C1) Next [a1].Select Application.Dialogs(xlDialogConsolidate).Showarg1:=ar EndSub application.Dialogs(xlDialogConsolidate).Showarg2:=3 设置合并计算的函数为计数,其它参数值:1平均值,2数值计数,4最大值,5最小值,6乘积,9求和 application.Dialogs(xlDialogConsolidate).Showarg3:=true,arg4:=true 标签位置设定为首行为最左列 application.Dialogs(xlDialogConsolidate).Showarg5:=true 选定“创建指向源数据的链接”选项
20、“显示”对话框 application.Dialogs(xlDialogDisplay).Showarg1:=true 显示公式(而不是显示计算结果) application.Dialogs(xlDialogDisplay).Showarg2:=false 不显示网格线 application.Dialogs(xlDialogDisplay).Showarg3:=false 不显示行号列标 application.Dialogs(xlDialogDisplay).Showarg4:=false 不显示零值 application.Dialogs(xlDialogDisplay).Showarg7:=false 不显示分级显示符号 application.Dialogs(xlDialogDisplay).Showarg8:=true 显示自动分页符 application.Dialogs(xlDialogDisplay).Showarg9:=3 参数值1为全部显示,2为仅显示位置
|