ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5710|回复: 8

如何提取TXT文档中只包含标题段的内容

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-8-25 11:42 | 显示全部楼层 |阅读模式
有个TXT文档,里面在每个标题项均有编号,而下段落为内容,如何只提取包含标题项段落的内容?文档结构如下: 1.aaaa fadfdadfdasfdfdfaf 2.dfadfa dfadfdfaddsfadfadf 3.dfad fadfdfadaafdf ...... 100.faddf fdafdfdasfdafa 也就是我只想提取有关1.aaaa,2.dfadfa,100.faddf等等这些标题段落,请问该如何操作?有没有简捷的办法?文档是普通TXT的

TA的精华主题

TA的得分主题

发表于 2004-8-25 14:21 | 显示全部楼层

以WORD程序打开该文档,完成以下步骤:

1. 将所有段落标记替换为手动换行符(为以后工作作必要的准备)

请从特殊字符中插入:

2. 查找:^P(段落标记) 替换为:^L(手动换行符)

3. 查找:^#(任意数字) 替换为:^=(短划线),主要为该文本中没有的符号

在查找对话框中选中使用通配符:

4. 查找: ^l[!–]*^l(意思为以换行符开头并且非为短划线的包括任意字符和末尾换行符的文本,替换为:^p(段落标记)

继续在查找对话框中选中使用通配符:

5. 查找:^=*.(意思为以短划线开头并包含任意字符和小数点的文本)

6. 替换为:""(空空,什么也不要输入)

替换过程结束,选定文本,自动编号命令,完成.

也许你能从中找到更合理的替换方法,我这只是一个思路,未特别作考虑。

下一步,我将用VBA作一个(特方便)。

TA的精华主题

TA的得分主题

发表于 2004-8-25 14:27 | 显示全部楼层
期待版主的作品.[em17]

TA的精华主题

TA的得分主题

发表于 2004-8-25 14:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
插入目录也可以把那些标题提取出来.

TA的精华主题

TA的得分主题

发表于 2004-8-25 14:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请在宏安全性为低的情况下,打开此文档,并将记事本中的文本粘贴于本文档中,运行“GetSthing"宏。
QN5T2iJP.zip (7.82 KB, 下载次数: 49)

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-8-25 21:50 | 显示全部楼层

谢谢版主热心解答!

我水平太菜,大概理解了版主的意思,但有些不清楚,恳请再指点一下:

在进行到第4步,即:“4. 查找: ^l[!–]*^l(意思为以换行符开头并且非为短划线的包括任意字符和末尾换行符的文本,替换为:^p(段落标记)”

在这里被卡住了,不能继续运行下去,特传一个文档上来请版主看看我在哪里操作错误

把段落标记替换为手动换行符这一步有何作用?

那个宏文件确实好用,不论是全角和半角标题都能提取,一下就搞定,强~佩服!!!

看代码有些地方也不懂意思,想问一下

If i.Range Like "#*" = False以及Application.ScreenUpdating = True这两句分别是什么含义,看不明白

另外如果我把整个TXT文档内容(包括标题项和每项下的内容)拷贝进WORD,该如何操作能使这些标题项自动转化为WORD的标题样式而不是普通正文样式?如果对这些标题项一个一个设置标题样式工作量有点大

希望版主能再次指点一下,感激不尽!

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-8-25 21:51 | 显示全部楼层

这是刚才不能继续进行操作的文档

KVO5JLK7.rar (8.69 KB, 下载次数: 21)

TA的精华主题

TA的得分主题

发表于 2004-8-26 04:59 | 显示全部楼层

以下是引用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可以更高效和免操作,但不如查找替换方便(多数人不会使用)

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-8-26 10:50 | 显示全部楼层

再次感谢版主再次耐心解答,现在已经搞清楚了[em44]

我平时使用WORD中很多步骤只知道有何用,但不能加以灵活运用,有时候只有用笨办法手工操作,使得效率比较低[em04]

版主所答复的很多步骤以前完全没想到过,多谢点拨了[em23]

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-15 13:04 , Processed in 0.044266 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表