Word--如何批量把答案ABCD放到对应题目的后面(括号里或横线上)
一般试题和答案是分开的,试题在前面,答案在后面,或者试题和答案分开在不同的文档,这是为方便出试卷测验。但是为了老师讲解的方便,又需要把试题和答案合起来。
现在有一份试题和对应的答案,分别存放在不同的word文档里。试题全为单选题,每题按顺序编号,答案也是按顺序编号的,且与试题编号对应。如下图所示。如果你的试题和答案的编号不规范,可能需要先使它变得规范。
现在需要把每一个答案放到对应试题的D选项后面。
可以利用表格的排序功能来实现这个需求
第一步把试题和答案文本转换为表格。
把答案文本转换为表格是简单的,只要全选答案文本,然后点击“文本转换为表格”命令,在弹出的对话框中使用默认设置,点“确定”即可将答案文本转换为表格。转换后的效果如下图所示。
然后把试题文本转换为表格。因为每个试题由题干和选项共5个段落组成,一个试题需要占一个单元格,而不是多个单元格,所以这个转换会有点麻烦。
调出查找和替换对话框,在查找内容中输入^13([A-D].),在替换为中输入*\1,勾选“使用通配符”,如下图所示。这个替换的意思是,把一个试题里,除最后一个段落标志外的其他四个段落标志替换为*号。之所以选择替换为*号,是因为试题中没有*号。也可以选择替换成其他字符,但要确保试题中不含有这个字符。因为后面还要把*号替换回段落标志,如果试题中也有*号,就会出现不想要的结果。
点击“全部替换”,则试题中的5个段落变成一个段落。选中所有试题,点击“文本转换为表格”命令,在弹出的对话框中,“文字分隔位置”设置为段落标志,点“确定”即可将试题文本转换为表格。转换成表格后,再把*号换回段落标志,也是使用查找替换功能实现。效果如下图所示。
第二步两个表格合并
把答案表格复制粘贴到试题表格后面,并合并表格,合并后如下图所示(为方便看到效果,试题数量已减少)。记住是答案放在题目后面。
第三步表格排序
选中整个表格,在布局选项卡中选择“排序”,弹出排序对话框。主要关键字选择“列1”,也只能选择“列1”,因为表格只有1列。排序的方式选择“升序”。排序的类型选择“数字”,因为试题和答案都用数字编号的,数字编号的排序结果最简单易懂了。其他使用默认设置。各项设置如下图所示。
最后点击确定。排序效果如下图所示。题目在前,相应的答案在后,按照数字顺序排列出来,达到了要求。此时,如果不想要表格形式的排版,一是可以把表格框线隐藏起来,二是把表格转换为文本。如果想去掉答案前的数字序号,可以使用查找替换功能,快速去掉。
排序成功的关键点是在数字序号。可以看出来Word中表格的排序是使用每个单元格中第一个字符进行的,所以务必确保试题和答案的数字序号正确。
答案放到题目中的括号内
如果想把答案放到题目中的括号内,需要先把上述方法所得到的表格形式的试题转换为文本。然后使用查找替换功能快速充填。查找:(*)( {1,})(*^13*正确答案:)([A-D]);替换:\1(\3)\2,勾选使用通配符,将光标置于文档最开始处,点击“全部替换”。效果如下图所示。
以上表达式只适用于该示例文档情况,想要达到理想的效果,查找替换表达式需要根据实际细节进行调整。还剩下“1.正确答案:”这样的多余段落,只需要一个简单的表达式就可以批量删除,聪明的你应该可以得到的。
2020-4-9更新
有一位知乎网友发来一个文档,如下视频所示。共有800多道单项选择题。https://www.zhihu.com/video/1231626967772360704
使用原文章所述的方法,在第三步对转换为表格的试题及答案进行排序时,没有不成功。亲自试了一下,内容多了,原文中的排序方法确实不成功。于是转变一下思路,把方法及操作过程记录如下。
第一步,在文首加一个空段。这是为了辅助下一步的查找替换操作
第二步,在每一个答案和题目的序号前重复一下序号,并加一个制表符。
查找^13([0-9]{1,3}.) 替换^p\1^t\1
第三步,合并选项与题目为一个段落。 查找^13([A-D]、) 替换\1
第四步,全选内容,以制表符为分隔符,把内容转换为两列多行的表格
第五步,调出排序功能,主要关键字为“列1”,类型为“数字”,使用“段落数”,选“升序”,其他不设置,确定。
第六步,删除辅助列,即首列,并把表格剪切粘贴为纯文本。如果原内容中存在图片、上下标等需要保留的格式,可以使用一个简单的VBA代码就地把表格转为文本。
Sub 表格转文本()
Dim tal As Table
For Each tal In ActiveDocument.Tables
tal.ConvertToText Separator:=wdSeparateByTabs
Next
End Sub
第七步,将答案移动到题目的括号中,并删除多余字符。
查找\(\)(*^13)[0-9]{1,3}.正确答案([A-D])^13 替换(\2)\1
第八步,把选项还原为段落。查找([A-D]、) 替换^p\1
完成。
注:以上的查找替换表达式都需要根据具体内容进行微调。批量将答案移动到对应题目中https://www.zhihu.com/video/1231628335450185728
关于分布答案的逆过程——Word试题试卷快速提取整理答案的技巧,可以参考以下文章https://zhuanlan.zhihu.com/p/72371799zhuanlan.zhihu.com
20201103更新。
如果序号是自动编号,查找替换功能将无法找到这些题目序号。可以用一句代码把自动编号转换为普通文本。代码如下:
sub test()
ActiveDocument.Content.ListFormat.ConvertNumbersToText
end sub
有什么关于办公图文方面的问题,可以发私信或评论,也许可以帮到你哦。
想学习更多关于word的实用知识,可以看看以下知乎电子书。《word排版技术大全》全面讲解word排版的理论与技术,提供大量排版应用案例。对已经有了一定基础的word用户来说,是一次大的技能升级。
开通知乎盐选会员,以上电子书都可以免费阅读,还有更多丰富的免费内容你可能感兴趣哦。