
一、VBA如何调出word和excel查找/替换对话框
VBA中,可以利用下面的语句来调用Excel内置对话框:Application.Dialogs(代码).Show其中代码与对话框名称对应表如下:代码 窗口名称 代码 窗口名称 代码 窗口名称 代码 窗口名称 代码 窗口名称 1 打开 54 删除单元格 190 字体 320 选项-视图 496 标签区域 2 编辑链接 55 插入 191 合并计算 321 加载宏 509 工作表背景 5 另存为 61 定义名称 192 排序 323 附加工具栏 525 数据有效性 6 删除文档 62 指定名称 198 单变量求解 342 插入图片 583 条件格式 7 页面设置 63 定位 199 编辑成组工作表 354 插入 596 插入超链接 8 打印内容 64 查找 203 创建组 355 选项-123的帮助 620 保护共享工作簿 9 打印机设置 84 单元格格式-图案 212 样式 356 选项-常规 647 选项-国际 12 重排窗口 91 分列 220 自定义 370 高级筛选 653 发布为网页 17 宏 94 取消隐藏 222 打印预览 381 单元格格式-字体 656 拼音属性 23 设置打印标题 95 工作区选项 229 样式 384 取消隐藏 666 导入文本文件 26 字体 103 激活 256 显示比例 386 重命名工作表 667 新建-Web_查询 27 显示选项 108 复制图片 259 对象 415 分类汇总 674 Web-选项-常规 28 保护工作表 110 定义名称 269 自动套用格式 417 保护工作簿 683 Web-选项-浏览器 32 重算选项 111 单元格格式-数字 276 自定义 447 自动筛选 684 Web-选项-文件 39 排序 119 新建 281 移动或复制工作表 450 插入函数 685 Web-选项-图片 40 序列 127 行高 282 移动或复制工作表 458 选项-自定义序列 686 Web-选项-编码 41 模拟运算表 130 替换 283 移动或复制工作表 472 标准列宽 687 Web-选项-字体 42 单元格格式-数字 132 定位条件 284 重命名工作表 473 合并方案 709 公式求值 43 单元格格式-对齐 134 字体 285 保存工作区 474 工作簿属性 731 基本文件搜索 44 字体 137 拆分 302 插入 475 打开 753 选项-保存 45 单元格格式-边框 142 设置 305 方案管理器 476 单元格格式-字体 755 选项-拼写检查 46 单元格格式-保护 145 另存为 307 添加方案 481 共享工作簿 771 符号 47 列宽 150 字体 312 数据透视表和数据透视图向导 485 自动更正 773 Web-选项-浏览器 52 清除 154 插入批注 318 选项-重新计算 493 视图管理器 796 创建列表 53 选择性粘贴 161 选项-颜色 319 选项-编辑 494 添加视图 817 信息检索。
二、VBA如何调出word和excel查找/替换对话框
VBA中,可以利用下面的语句来调用Excel内置对话框:
Application.Dialogs(代码).Show
其中代码与对话框名称对应表如下:
代码 窗口名称 代码 窗口名称 代码 窗口名称 代码 窗口名称 代码 窗口名称
1 打开 54 删除单元格 190 字体 320 选项-视图 496 标签区域
2 编辑链接 55 插入 191 合并计算 321 加载宏 509 工作表背景
5 另存为 61 定义名称 192 排序 323 附加工具栏 525 数据有效性
6 删除文档 62 指定名称 198 单变量求解 342 插入图片 583 条件格式
7 页面设置 63 定位 199 编辑成组工作表 354 插入 596 插入超链接
8 打印内容 64 查找 203 创建组 355 选项-123的帮助 620 保护共享工作簿
9 打印机设置 84 单元格格式-图案 212 样式 356 选项-常规 647 选项-国际
12 重排窗口 91 分列 220 自定义 370 高级筛选 653 发布为网页
17 宏 94 取消隐藏 222 打印预览 381 单元格格式-字体 656 拼音属性
23 设置打印标题 95 工作区选项 229 样式 384 取消隐藏 666 导入文本文件
26 字体 103 激活 256 显示比例 386 重命名工作表 667 新建-Web_查询
27 显示选项 108 复制图片 259 对象 415 分类汇总 674 Web-选项-常规
28 保护工作表 110 定义名称 269 自动套用格式 417 保护工作簿 683 Web-选项-浏览器
32 重算选项 111 单元格格式-数字 276 自定义 447 自动筛选 684 Web-选项-文件
39 排序 119 新建 281 移动或复制工作表 450 插入函数 685 Web-选项-图片
40 序列 127 行高 282 移动或复制工作表 458 选项-自定义序列 686 Web-选项-编码
41 模拟运算表 130 替换 283 移动或复制工作表 472 标准列宽 687 Web-选项-字体
42 单元格格式-数字 132 定位条件 284 重命名工作表 473 合并方案 709 公式求值
43 单元格格式-对齐 134 字体 285 保存工作区 474 工作簿属性 731 基本文件搜索
44 字体 137 拆分 302 插入 475 打开 753 选项-保存
45 单元格格式-边框 142 设置 305 方案管理器 476 单元格格式-字体 755 选项-拼写检查
46 单元格格式-保护 145 另存为 307 添加方案 481 共享工作簿 771 符号
47 列宽 150 字体 312 数据透视表和数据透视图向导 485 自动更正 773 Web-选项-浏览器
52 清除 154 插入批注 318 选项-重新计算 493 视图管理器 796 创建列表
53 选择性粘贴 161 选项-颜色 319 选项-编辑 494 添加视图 817 信息检索
三、word VBA 查找 替换
Set myRange = ActiveDocument.Content myRange.Find.Execute FindText:="2", ReplaceWith:="1", Replace:=wdReplaceAll Set myRange = ActiveDocument.Content myRange.Find.Execute FindText:="2", ReplaceWith:="1", Replace:=wdReplaceAll Execute 方法(Find 对象) 运行指定的查找操作。
如果查找成功,则返回 True。(这说明其是同步执行) 语法 expression.Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl) expression 必需。
该表达式返回 Find 对象。 FindText Variant 类型,可选。
指定需查找的文本。可用空字符串 ("") 查找格式。
也可通过指定适当的字符代码查找特殊字符。例如,“^p”对应段落标记,“^t”对应制表符。
如果需要使用特殊字符列表,请参阅查找替换特殊字符和文档元素示例。 如果 MatchWildcards 为 True,则可以指定通配符及其他高级搜索条件。
例如,“*(ing)” 将查找以“ing”结尾的所有单词。详细内容,请参阅通配符搜索示例。
若要搜索符号字符,可键入 (^) 字符,零(0),然后键入符号字符的代码。例如,“^0151”对应一条长划线(—)。
MatchCase Variant 类型,可选。如果是 True,则查找文本需区分大小写。
相当于“编辑”菜单“查找和替换”对话框中的“区分大小写”复选框。 MatchWholeWord Variant 类型,可选。
如果为 True,则只查找匹配的完整单词,而并非作为一个长单词的一部分的文字。相当于“编辑”菜单“查找和替换”对话框中的“全字匹配”复选框。
MatchWildcards Variant 类型,可选。如果为 True,则查找的文字包含特殊搜索操作符。
相当于“编辑”菜单“查找和替换”对话框中的“使用通配符”复选框。 MatchSoundsLike Variant 类型,可选。
如果为 True,则查找与待查找文字发音相近的单词。相当于“编辑”菜单“查找和替换”对话框中的“同音”复选框。
MatchAllWordForms Variant 类型,可选。如果为 True,则查找文字的所有形式(例如,“ sit” 将包含“sitting”和“sat”)。
相当于“编辑”菜单“查找和替换”对话框中的“查找单词的各种形式”复选框。 Forward Variant 类型,可选。
如果为 True,则向下(向文档尾部)搜索。 Wrap Variant 类型,可选。
如果搜索从不是文档开头的位置开始,并到达文档末尾(如 Forward 设置为 False,则相反),用本参数控制接下来的操作。当在选定内容或区域中没有找到搜索文字时,本参数也控制接下来的操作。
可以是下列 WdFindWrap 常量之一: 常量 描述 wdFindAsk 搜索完所选内容或者区域后,Microsoft Word 会显示一条消息,询问是否搜索文档的其他部分。 wdFindContinue 到达搜索区域的开始或者结尾时,继续执行查找操作。
wdFindStop 到达搜索范围的开始或者结尾时,停止执行查找操作。 Format Variant 类型,可选。
如果为 True,则查找格式而非文字。 ReplaceWith Variant 类型,可选。
替换文字。要删除由 Find 参数指定的文字,可使用空字符串 ("")。
与 Find 参数相似,本参数也可以指定特殊的字符和高级搜索条件。要将图形对象或者其他非文本项指定为替换内容,可将这些项目置于“剪贴板”上,然后将 ReplaceWith 指定为“ ^c”。
Replace Variant 类型,可选。指定执行替换的个数:一个、全部或者不替换。
可为下列 WdReplace 常量之一:wdReplaceAll、wdReplaceNone 或 wdReplaceOne。 MatchKashida Variant 类型,可选。
如果为 True,则查找结果应与阿拉伯语文档中区分 kashidas 的文本相匹配。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。
MatchDiacritics Variant 类型,可选。如果为 True,则查找结果应与区分音调符号的语言文本相匹配。
由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。 MatchAlefHamza Variant 类型,可选。
如果为 True,则在阿拉伯语文档中,查找内容应与区分 Alef Hamzas 的文本相匹配。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。
MatchControl Variant 类型,可选。如果为 True,则在从右到左运用语言的文档中,查找内容应区分双向控制字符。
由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。 说明 除非另外指定,否则替换文本将沿用文档中被替换文本的格式。
例如,如果用“xyz”替换“abc”,那么粗体“abc”将被粗体字符串“xyz”所替换。 同样,如果 MatchCase 为 False,那么查找到的大写文本将被大写的替换文本替换,而无论搜索文本和替换文本是否大小写。
上例中,“ABC”将被“XYZ”替换。
四、求助word利用VBA字符串查找并替换功能
dim i as integer
dim j as integer
dim str1 as string
dim str2 as string
dim str3 as string
dim str4 as string
str1 = jicwo[abc]iuhiwd
str2 = ""
str3 = ""
str4 = ""
for i = 1 to len(str1)
if left(right(str1,i),1) <> "[" then
str2 = str2 + left(right(str1,i)
else
str3 =replace(str1,str2,"")
end if
next i
for j = 1 to len(str3)
if left(right(str3,j),1) <> "]" then
str4 = str4 + left(right(str3,j)
else
str4 =replace(str4,"]","")
end if
next j
到这里str4就是中括号内的内容了,后面你说的我没太明白是什么意思,在全文把Jicwo[abc]iuhiwd替换成Jicwo[xxx]iuhiwd ?
五、关于Word VBA查找替换(含通配符)的问题
<; 标识单词开始,也就是说这里要匹配一个整词,前面要么是空格,要么是标点符号等。
(Subject) 匹配“Subject”这个单词。用圆括号括起来的是让它成组,同时本来也可以在替换内容中通过“\1”来指代它。但是我看粘贴出来的代码里面替换内容为空,所以我觉得这个圆括号可有可无。
\\ 匹配“\”这个字符。因为“\”本身在查找控制字符里面具有特殊的控制意义(转义),所以要匹配它自己就必须在前面再加一个“\”进行转义。
* 匹配0到任意多个任意字符
([^11^13]){1} 匹配一个换段符(^13,在文档里面是直接键入ENTER得到)或者一个段内换行符(^11,在文档里面键入SHIFT+ENTER得到)。方括号的意思是匹配方括号里面这个集合中的任意字符。“{n}”表示匹配n次,所以“{1}”就是匹配1次了。至于那个圆括号,和上面提到的圆括号的功能相同,同样我觉得这里使用是多余的。
整句话的意思,就是要找到形如“Subject\ajdslfjasdlf”文字,且它后面必须是一个换段或者段内换行。
__________________
补充:
楼主说的没错,^11^13在这里是可以理解成或者的关系。
请问楼主提到的需求中,title后面是不是一定会有一个回车?
如果是这样的话,可以直接在Word查找替换对话框中用这个查找串: <Subject*\\<([!\\]@)[^11^13] ,替换为:\1 。
选中通配符后做全部替换即可。
应该是不需要VBA的吧?楼主可以先试试看,如果不行我再想办法。
___________________
再补充:
([!\\]@) 的意思就是匹配一个不包含“\”(这个由“[!\\]”来控制)的字符串,这个字符串由至少一个字符组成(这个由“@”来控制)。
所以,我的整个查找串的意思就是,查找一个“Subject”开头,后面有若干字符,最后一个反斜杆的后面有一个字符串,再往后就是一个回车。
当然,如果不想用通配符,当然自己写代码也是能做到了。但是就得自己去分析整个字符串,会需要考虑很多因素和可能的变化,代码会写得很复杂。此外,Word查找替换的通配符,是Word中很重要的一个功能,掌握它能够为平时的工作带来的很大便利。所以还是值得去研究一下的。
其实我就是看Word自带的帮助啊……在Word里面键入F1,然后输入关键字“查找替换”,好象返回的第一条就是我看的那个帮助,里面有这些控制符号的解释。
不过Word的查找替换对于模糊查询的支持总的来说还是比较弱。要想做到更精确、更复杂的搜索条件,还是需要用到正则表达式。这个可以在网上搜索一下“VBA 正则表达式”。
六、求助word利用VBA字符串查找并替换功能
dim i as integerdim j as integerdim str1 as stringdim str2 as stringdim str3 as stringdim str4 as stringstr1 = jicwo[abc]iuhiwdstr2 = ""str3 = ""str4 = ""for i = 1 to len(str1)if left(right(str1,i),1) <> "[" thenstr2 = str2 + left(right(str1,i)elsestr3 =replace(str1,str2,"")end ifnext ifor j = 1 to len(str3)if left(right(str3,j),1) <> "]" thenstr4 = str4 + left(right(str3,j)elsestr4 =replace(str4,"]","")end ifnext j到这里str4就是中括号内的内容了,后面你说的我没太明白是什么意思,在全文把Jicwo[abc]iuhiwd替换成Jicwo[xxx]iuhiwd ?。
七、vba 查找替换问题
从代码本身来看,应该没有问题。但鉴于你以前遇到过的情况,或许还是一些 VBA 常量的定义未初始化,请参照以下对照表,替换代码中的预定义常量:
名称 值 说明
wdReplaceAll 2 替换所有匹配项。
wdReplaceNone 0 不替换任何匹配项。
wdReplaceOne 1 替换遇到的第一个匹配项。
wdFindAsk 2 搜索完所选内容或范围后,Microsoft Word 会显示一条消息,询问是否搜索文档的其余部分。
wdFindContinue 1 到达搜索范围的开始或结尾时,继续执行查找操作。
wdFindStop 0 到达搜索范围的开始或结尾时,停止执行查找操作。
八、如何用VBA查找word文档中的中文括号,并依次将找到的括号内的文字
word2003测试通过:Private Sub Document_Open()Dim i As IntegerDim flag As BooleanActiveDocument.Range.Select Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting i = 1 flag = True Do While flag With Selection.Find .Text = "[(\(]?@[)\)]" .Replacement.Text = "(" + Trim(Str(i)) + ")" .Forward = True .Format = False .MatchCase = False .MatchWholeWord = False .Wrap = wdFindStop .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Collapse Direction:=wdCollapseStart flag = Selection.Find.Execute(Replace:=wdReplaceOne) Selection.Collapse Direction:=wdCollapseEnd i = i + 1 Loop End Sub。
转载请注明出处51数据库 » vba在word中查找替换
辣条43295881