ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] word自动排版:给题目添加序号和句号,答案前添加参考答案,

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-10-28 21:02 | 显示全部楼层 |阅读模式

源文档中包含多个简答题,每道简答题的题目以简述开头。源文档内容如下面第一个图所示。现希望通过vba实现以下需求:
①给每道简答题的题目都加粗
②在题目后面加上句号
③每个简答题的答案前加上【参考答案】
希望实现的效果如下第二个图所示。两个图对应的文档已通过附件上传。
希望大佬帮忙解决,采纳后送小花花,谢谢!
目标文档.png

源文档.png

简答题排版求助.rar

37.98 KB, 下载次数: 19

TA的精华主题

TA的得分主题

发表于 2020-10-28 22:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 约定的童话 于 2020-10-30 08:39 编辑

OK了,可以批量操作多个
20201029_094924.gif
QQ截图20201030083909.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-28 23:34 | 显示全部楼层
约定的童话 发表于 2020-10-28 22:15
就一个word文档啊?手动也做好了啊!

图片和文档只是举例,实际有很多这样的文档,而且每个文档的题目很多

TA的精华主题

TA的得分主题

发表于 2020-10-29 11:27 来自手机 | 显示全部楼层
本帖最后由 zhanglei1371 于 2020-10-29 13:55 编辑

不涉及挪移,VBa很简单。

Sub test()
startwd = Array("简述")
ActiveDocument.Range.InsertBefore "." & Chr(13)
Dim fd As Field
Set fd = ActiveDocument.Fields.Add(ActiveDocument.Range(0, 0), wdFieldEmpty, "seq aa")
fd.Update
Set temprg = ActiveDocument.Paragraphs(1).Range
temprg.End = temprg.End - 1
temprg.Select
With ActiveDocument.Range.Find
    .Text = "简述"
    Do While .Execute
        ActiveDocument.Range(.Parent.Start, .Parent.Start).FormattedText = temprg.FormattedText
    myen = .Parent.Paragraphs(1).Range.End
    ActiveDocument.Range(myen - 1, myen - 1).InsertAfter "。"
    .Parent.Paragraphs(1).Range.InsertAfter "【参考答案】"
     .Parent.Paragraphs(1).Range.Font.Bold = 1
     .Parent.End = .Parent.End + 50
     .Parent.Collapse 0
    Loop
   
End With
ActiveDocument.Range.Paragraphs(1).Range = ""
ActiveDocument.Fields.Update
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-10-29 12:34 | 显示全部楼层
过程在后面有图片,和文字
第一步:定义标题一样式,给标题一文字设置加粗,添加项目编号。
第二步:使用查找替换,把题目设置为标题一, 查找:简述,替换:标题1
第三步:使用查找替换,给标题一后面加句号, 查找:^p ,替换:。^p
第四步:使用查找替换,给标题一后面加一行,查找:^p,替换:^p【标准答案】
第五步:更新标题1,检查核对全文

word自动排版:给题目添加序号和句号,答案前添加参考答案完成.zip

343.52 KB, 下载次数: 22

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-10-29 14:39 | 显示全部楼层
D都市慷慨 发表于 2020-10-29 12:34
过程在后面有图片,和文字
第一步:定义标题一样式,给标题一文字设置加粗,添加项目编号。
第二步:使用 ...

楼上的思路很清晰了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-29 21:32 | 显示全部楼层
D都市慷慨 发表于 2020-10-29 12:34
过程在后面有图片,和文字
第一步:定义标题一样式,给标题一文字设置加粗,添加项目编号。
第二步:使用 ...

谢谢回复!但是觉得还是有些繁琐,因为要处理的文档很多,希望vba一秒搞定

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-29 21:33 | 显示全部楼层
D都市慷慨 发表于 2020-10-29 12:34
过程在后面有图片,和文字
第一步:定义标题一样式,给标题一文字设置加粗,添加项目编号。
第二步:使用 ...

思路清晰,很感谢!送一朵小花花

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-29 21:36 | 显示全部楼层
zhanglei1371 发表于 2020-10-29 11:27
不涉及挪移,VBa很简单。

Sub test()

只能对第一道简答题起作用,不过基本可以满足需求,非常感谢,所以也送你小花花

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-10-29 21:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
约定的童话 发表于 2020-10-28 22:15
貌似还有点bug,我再优化下...

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

本版积分规则

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

GMT+8, 2024-11-24 03:18 , Processed in 0.038131 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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