ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 413191246se

[分享] Word 2003 & 2019 自动排版宏(2020 国庆珍藏版)

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-3-13 01:01 | 显示全部楼层
楼上新人朋友,你好!——你的两个问题我均不能解答。抱歉啊!请搜索网络查询吧!

TA的精华主题

TA的得分主题

发表于 2021-4-2 17:00 | 显示全部楼层
对于形如1.xxxxxx。独立句子直接为定义标题4。
对于形如1.xxxxxx。xxxxxx……。前面的1.xxxxxx。定义为标题4,后面的xxxxxx……。定义为正文样式。两者之间ctrl+alt+enter联接。这样外在形式不变。也不影响抽取目录了。
不知道这条路是否走得通?代码能不能实现?
请大神出手

走得通的话,2,3级标题类似的问题也都适用这个思路。

TA的精华主题

TA的得分主题

发表于 2021-4-2 17:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼上,样式分割符是在第一个句号前还是之后?传个测试文档上来?

TA的精华主题

TA的得分主题

发表于 2021-4-2 20:15 来自手机 | 显示全部楼层
当然是句号后. 目录带句号很客易处理的. 至于例文太简单了,就不提供了.

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-4-3 00:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 413191246se 于 2021-4-3 14:00 编辑

* 祝 龚老师 和 论坛各位版主、管理员、老师、大神、朋友们:清明节安康!!!
* xkqtdzj 朋友,谢谢!——我已有此意!但最近因为用眼过度,三叉神经痛又犯了,暂时休息。。。

TA的精华主题

TA的得分主题

发表于 2021-4-8 14:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-4-9 16:02 | 显示全部楼层
xkqtdzj 发表于 2021-4-2 17:00
对于形如1.xxxxxx。独立句子直接为定义标题4。
对于形如1.xxxxxx。xxxxxx……。前面的1.xxxxxx。定义为标 ...

我已经实现了这个,请在aidocx.com上体验

TA的精华主题

TA的得分主题

发表于 2021-4-12 16:33 | 显示全部楼层
本帖最后由 xkqtdzj 于 2021-4-12 18:40 编辑

我只考虑标题4的情况,我用的笨办法。将处理后标题4段落转为正文样式。再将其中的首句,定为标题4。我用录宏的办法形成代码。大致达到目标。但有三个问题:①段落前空2没有了。②段落带框了。③首句后的文字加粗了。
Attribute VB_Name = "模块5"
Sub toB4()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Style = ActiveDocument.Styles("标题 4 Char")
    With Selection.Find
        .Text = "([0-9]@.*[^13。])"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Sub toZW()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Style = ActiveDocument.Styles("正文")
    Selection.Find.Replacement.ParagraphFormat.Borders.Shadow = False
    With Selection.Find
        .Text = "([0-9]@.*[^13])"
        .Replacement.Text = "\1"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
请老师指导如何改代码,准确快速实现下图的目标:

首句后正文样式

首句后正文样式

首句标题4

首句标题4

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-4-16 01:16 | 显示全部楼层
* xkqtdzj 朋友,你好!——最近考虑中文自动排版能否创新,但苦思无果,遂未开工。另加最近想重新编制一下表格合并的宏,故未及时回复,望请见谅!
   
* 今日总算决定看看此样式分隔符如何加入,但并未从字符代码角度(chr/asc/Unicode)插入,而是从选定区域角度来插入的,反复试验是成功的。但此宏并未能在正常排版时插入,而是作为补丁在全部排版完毕后循环遍历所有段落基础上仅对 标题 4 段落有效,请自行准备示例文档试验之。必须在正常排版后应用本宏。
   
* 前一段时间,从本坛网友“晨晓之黎”处学会了多模块的应用,并非只能用默认的 NewMacros 模块,而是可以随时插入一个模块来运行宏的。下面提供《标题4插入样式分隔符》的宏模块代码,请解压后在 VBE 中插入此模块即可;或复制到 NewMacros 模块中也可。
   
* InsertStyleSeparator.rar (1.12 KB, 下载次数: 23)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-4-16 01:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
说了好多,忘了一句:这样处理,增加了排版时间,影响了效率;但如果确实需要,也就无所谓了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-1 06:14 , Processed in 0.034958 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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