以下是引用iMike在2004-8-25 21:50:00的发言: 在进行到第4步,即:“4. 查找: ^l[!–]*^l(意思为以换行符开头并且非为短划线的包括任意字符和末尾换行符的文本,替换为:^p(段落标记)” 在这里被卡住了,不能继续运行下去,特传一个文档上来请版主看看我在哪里操作错误 把段落标记替换为手动换行符这一步有何作用? If i.Range Like "#*" = False以及Application.ScreenUpdating = True这两句分别是什么含义,看不明白 另外如果我把整个TXT文档内容(包括标题项和每项下的内容)拷贝进WORD,该如何操作能使这些标题项自动转化为WORD的标题样式而不是普通正文样式?如果对这些标题项一个一个设置标题样式工作量有点大 问题一大堆,一个一个来: 1. If i.Range Like "#*" = False是每个段落区域(range对象,此处理解成文本亦可)不等同于以任意数字开头的话(然后删除之) 2. Application.ScreenUpdating = True开启(恢复)屏幕更新,运行初期关闭,目的是加快运行速度(对于长段落,效果特别明显) 3. 第四步骤出错,原因是你的文本中有很多空白段落,你可以在第一步前替换,也可以在该步替换(查找:^p^p,替换为^p),第四步替换则(查找:^l^l,替换为^l),你可在工具/选项/视图/格式标记视图中的"全部"复选框前打勾后确定,一目了然. 4. 把段落标记(^P)替换为(^l)的主要目的是在使用通配符选项过程中,替换栏中不支持段落标记,只能过渡一下,因为我们要使用“*”通配符。 5. 如果需要转化成标题样式,更方便: a) 将TXT文档复制粘贴到WORD中,打开查找与替换对话框: b) 查找:^#.(意为查找任意数字并包含小数点,注意你此处的小数点为全角,建议此小数点以粘贴形式录入,也可直接,包括替换后的短划线,在[!-](非中),也是粘贴形式录入,保险,不出错. c) 替换成:^&.(查找内容,即不替换),但在格式选项中,选择样式,出现查找样式对话框,选中一种,比如标题8,全部替换即可. 6. 如果使用VBA,也与上述差不多: Sub SetStyle() Dim i As Paragraph On Error Resume Next Application.ScreenUpdating = False For Each i In ActiveDocument.Paragraphs If i.Range Like "#*" = True Then i.Range.Style = wdStyleHeading8'设为标题8 Next Application.ScreenUpdating = True End Sub 总结:word中的查找替换中特殊字符的应用十分广泛,不一定要局限于一种方式,多体会. 使用VBA可以更高效和免操作,但不如查找替换方便(多数人不会使用) |