ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] Word文档--如何批量把答案放到对应题目的后面(括号里或横线上)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-3-15 10:35 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 chendeyan126 于 2019-3-15 10:45 编辑

Word文档--如何批量把答案放到对应题目的后面(括号里或横线上)
一般试题和答案是分开的,试题在前面,答案在后面,或者试题和答案分开在不同的文档,这是出于方便并促进学生独立思考后答题的考虑。但是为了老师讲解的方便,又需要把试题和答案合起来。

现在有一份试题和对应的答案,分别存放在不同的word文档里。试题全为单选题,每题按顺序编号,下面是ABCD四个选项,答案也是按顺序编号的。如下图所示。如果你的试题和答案的编号不规范,可能需要使用查找替换功能使它变得规范。 试题与答案文档.png


现在需要把每一个答案放到对应试题的D选项后面。

可以利用表格的排序功能来实现这个需求
第一步把试题和答案文本转换为表格。

把答案文本转换为表格是简单的,只要全选答案文本,然后点击“文本转换为表格”命令,在弹出的对话框中使用默认设置,点“确定”即可将答案文本转换为表格。转换后的效果如下图所示。
答案表格.png



然后把试题文本转换为表格。因为每个试题由题干和选项共5个段落组成,一个试题需要占一个单元格,而不是多个单元格,所以这个转换会有点麻烦。
调出查找和替换对话框,在查找内容中输入^13([A-D].),在替换为中输入*\1,勾选“使用通配符”,如下图所示。这个替换的意思是,把一个试题里,除最后一个段落标志外的其他四个段落标志替换为*号。之所以选择替换为*号,是因为试题中没有*号。也可以选择替换成其他字符,但要确保试题中不含有这个字符。因为后面还要把*号替换回段落标志,如果试题中也有*号,就会出现不想要的结果。
试题表格查找替换.png


点击“全部替换”,则试题中的5个段落变成一个段落。选中所有试题,点击“文本转换为表格”命令,在弹出的对话框中,“文字分隔位置”设置为段落标志,点“确定”即可将试题文本转换为表格。转换成表格后,再把*号换回段落标志,也是使用查找替换功能实现。效果如下图所示。
试题表格.png



第二步两个表格合并

把答案表格复制粘贴到试题表格后面,并合并表格,合并后如下图所示(为方便看到效果,试题数量已减少)。记住是答案放在题目后面。
试题答案表格合并.png





第三步表格排序

选中整个表格,在布局选项卡中选择“排序”,弹出排序对话框。主要关键字选择“列1”,也只能选择“列1”,因为表格只有1列。排序的方式选择“升序”。排序的类型选择“数字”,因为试题和答案都用数字编号的,数字编号的排序结果最简单易懂了。其他使用默认设置。各项设置如下图所示。

表格排序.png




最后点击确定。排序效果如下图所示。题目在前,相应的答案在后,按照数字顺序排列出来,达到了要求。此时,如果不想要表格形式的排版,一是可以把表格框线隐藏起来,二是把表格转换为文本。如果想去掉答案前的数字序号,可以使用查找替换功能,快速去掉。
排序成功的关键点是在数字序号。可以看出来Word中表格的排序是使用每个单元格中第一个字符进行的,所以务必确保试题和答案的数字序号正确。
排序效果.png




答案放到题目中的括号内

如果想把答案放到题目中的括号内,需要先把上述方法所得到的表格形式的试题转换为文本。然后使用查找替换功能快速充填。查找:(*)( {1,})(*^13*正确答案:)([A-D]);替换:\1(\3)\2,勾选使用通配符,将光标置于文档最开始处,点击“全部替换”。效果如下图所示。
以上表达式只适用于该示例文档情况,但是思路都是一样的。想要达到理想的效果,查找替换表达式需要根据实际细节进行调整。

答案放到括号内效果.png



这个需求使用vba代码肯定可以更好地实现。仅供不会vba代码的人参考。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-3-15 17:05 | 显示全部楼层
很好,赞一个!

TA的精华主题

TA的得分主题

发表于 2019-3-15 19:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-3-19 20:50 | 显示全部楼层
假定所有的符号均在英文状态输入,我觉得查找([!^13]@)(\(\))(*正确答案:)([A-D])  替换\1(\4)\3 可能会好理解点

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-20 07:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
为善最乐 发表于 2019-3-19 20:50
假定所有的符号均在英文状态输入,我觉得查找([!^13]@)(\(\))(*正确答案:)([A-D])  替换\1(\4)\3 可能会好 ...

根据实际情况,能用即可。

TA的精华主题

TA的得分主题

发表于 2019-3-20 12:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-4-27 18:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
很好,赞一个!

TA的精华主题

TA的得分主题

发表于 2023-4-7 22:09 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-27 20:03 , Processed in 0.038519 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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