我有一个用于 Microsoft Word 的 VBA 宏,我正在尝试改进它。
该宏的目的是将文档中与文档第一个表中的搜索词相匹配的所有单词加粗和斜体显示。
问题是搜索词包含通配符,如下所示:
连字符“-”:字母之间的通配符,表示空格或句点
星号“&”:(该网站不允许我输入星号,因为这是斜体的降价,所以我将输入 & 符号来绕过过滤器)开头的任意数量的字符的通配符一句话或最后。但与普通编程语言不同的是,当它在单词中间使用时,需要与连字符组合起来作为一系列字符的通配符。例如,“th&-e”会拾取“there”,而“th&e”则不会。
问号“?”:单个字符的通配符
到目前为止我所做的只是测试这些字符,如果它们存在,我要么在星号的情况下将它们删除,要么提醒用户他们必须手动搜索该单词。不理想:-P
我已经尝试过 VBA 中的 .MatchWildcard 属性,但尚未使其正常工作。我有一种感觉,它与替换文本有关,而不是搜索文本。
工作宏将采用以下内容作为其输入(故意忽略第一行,第二列是包含目标搜索词的行):
想象一下这个表在第二列中(因为这里允许的 html 不允许 tr 和 td 等)
第一行:Word
第二行:搜索
第三行:&earch1
第四行:Search2&
第五行:S-earch3
第六行:S?arch4
第七行:S&-ch5
它将搜索文档并替换为粗体和斜体内容,如下所示:
搜索 搜索1 搜索2 搜索3 搜索4 搜索5
注意:S-earch3 也可以选择 S.earch3 并替换为 Search3
正如人们可能假设的那样,搜索词通常不会彼此相邻 - 宏应该找到所有实例。
我将在第一个工作宏之后包含我尝试过但不起作用的代码。
从今天开始,即 2009 年 9 月 17 日,工作宏的代码将在 Pastebin 上发布一个月,网址如下。
再次感谢您可能提供的任何想法和帮助!
莎拉
工作 VBA 宏:
Sub AllBold()
Dim tblOne As Table
Dim celTable As Cell
Dim rngTable As Range …Run Code Online (Sandbox Code Playgroud)