乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > <em>word</em> <em>VBA</em> <em>

<em>word</em> <em>VBA</em> <em>

作者:乔山办公网日期:

返回目录:word文档


< 标识单词开始,也就是说这里要匹配一个整词,前面要么是空格,要么是标点符号等。

(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的吧?楼主可以先试试看,如e79fa5e98193e4b893e5b19e337果不行我再想办法。

___________________
再补充:

([!\\]@) 的意思就是匹配一个不包含“\”(这个由“[!\\]”来控制)的字符串,这个字符串由至少一个字符组成(这个由“@”来控制)。

所以,我的整个查找串的意思就是,查找一个“Subject”开头,后面有若干字符,最后一个反斜杆的后面有一个字符串,再往后就是一个回车。

当然,如果不想用通配符,当然自己写代码也是能做到了。但是就得自己去分析整个字符串,会需要考虑很多因素和可能的变化,代码会写得很复杂。此外,Word查找替换的通配符,是Word中很重要的一个功能,掌握它能够为平时的工作带来的很大便利。所以还是值得去研究一下的。

其实我就是看Word自带的帮助啊……在Word里面键入F1,然后输入关键字“查找替换”,好象返回的第一条就是我看的那个帮助,里面有这些控制符号的解释。

不过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 的文本相匹配。由于选e69da5e6ba90e799bee5baa6e997aee7ad94333择或安装的语言支持不同(例如,美国英语),此参数可能不可用。

MatchDiacritics Variant 类型,可选。如果为 True,则查找结果应与区分音调符号的语言文本相匹配。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。

MatchAlefHamza Variant 类型,可选。如果为 True,则在阿拉伯语文档中,查找内容应与区分 Alef Hamzas 的文本相匹配。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。

MatchControl Variant 类型,可选。如果为 True,则在从右到左运用语言的文档中,查找内容应区分双向控制字符。由于选择或安装的语言支持不同(例如,美国英语),此参数可能不可用。

说明

除非另外指定,否则替换文本将沿用文档中被替换文本的格式。例如,如果用“xyz”替换“abc”,那么粗体“abc”将被粗体字符串“xyz”所替换。

同样,如果 MatchCase 为 False,那么查找到的大写文本将被大写的替换文本替换,而无论搜索文本和替换文本是否大小写。上例中,“ABC”将被“XYZ”替换。

stringtxt="asdjsfk/aaaaaaaaa";

判断这个字符串中包含替换/,

就在斜杠前面加zd上字符‘x’

1、使用if语句

if(txt.Contains("/")){txt=txt.Replace("/","x/");}

2、使用条件运算符(?:)

txt=txt.Contains("/")?txt.Replace("/","x/"):txt;

扩展资料

stringReplace(替换的目标,替换的字符串),返回值是替换后的字符串

stringstr="11xx1111x";

Console.WriteLine("原字符串是:{0}",str);

Console.Write("请输入需要替换的字符串:");

stringoldStr=Console.ReadLine();

Console.Write("请输入替换的字符串:");

stringnewStr=Console.ReadLine();

str=str.Replace(oldStr,newStr);

Console.WriteLine("替换后的字符串:{0}",str);



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就是中括号内zhidao的内容了,后面你说的我没太明白是什么意思,在全文把Jicwo[abc]iuhiwd替换成Jicwo[xxx]iuhiwd ?

相关阅读

  • <em>word</em> <em>VBA</em> <em>

  • 乔山办公网word文档
  • < 标识单词开始,也就是说这里要匹配一个整词,前面要么是空格,要么是标点符号等。(Subject) 匹配“Subject”这个单词。用圆括号括起来的是让它成组,同时本来也可以在替
  • <em>VBA</em> 用<em>excel</em>模块复制<

  • 乔山办公网excel表格制作
  • 可以完成。但要说如何完成,那就不是几句话能说清了。vba如何将excel表格的指定内容复制到word相应..." src="/uploads/tu/371.jpg" style="width: 400px; height: 267px;" />Sub abc()Dim App, WrdDoc, My
  • 用<em>vba</em>实现,在同一个<em>Word</em>文件中

  • 乔山办公网word文档
  • 1、打开word文档,这个文档有4页。2、想将来光标迅速移动到第3页,自可以点击开始,替换。百3、弹出对话框,点击定位度。4、弹出对话框,点击定位目标内容“页”问,右边输入页号
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网