Word VBA

[复制链接]
查看11 | 回复3 | 2010-7-20 01:30:19 | 显示全部楼层 |阅读模式
一个Word文档,是一些选择题,已给出“正确答案:C”(假如答案是C项),如:
1.由于放大电路对非正弦输入信号中不同频率分量有不同的放大能力和相移,因此会引起放大电路的输出信号产生失真。这种失真称为()失真。正确答案:CA、饱和B、截止C、频率D、幅度
2. ...........
请教如何用VBA在四个选项中提取答案项?
本人初涉VBA,急需解决上述问题,谢谢高手鼎力相助。
源文档是这样:
1.本征半导体中的自由电子浓度( )空穴浓度。正确答案:C A、大于 B、小于 C、等于
2.在掺杂半导体中,多子的浓度主要取决于( )。 正确答案:C A、温度 B、材料 C、掺杂浓度
3.在掺杂半导体中,少子的浓度受( )的影响很大。 正确答案:A A、温度 B、掺杂工艺 C、掺杂浓度
4.在掺杂半导体中,多子的浓度越高,少子的浓度越( )。 正确答案:B A、高 B、低 C、不变
5.N型半导体( )。 正确答案:C A、带正电 B、带负电 C、呈中性
希望改成这样:
1.本征半导体中的自由电子浓度( )空穴浓度。C、等于A、大于 B、小于
2.在掺杂半导体中,多子的浓度主要取决于( )。C、掺杂浓度A、温度 B、材料
3.在掺杂半导体中,少子的浓度受( )的影响很大。A、温度 B、掺杂工艺 C、掺杂浓度
4.在掺杂半导体中,多子的浓度越高,少子的浓度越( )。B、低A、高C、不变
5.N型半导体( )。C、呈中性A、带正电 B、带负电
“四个候选答案之间都连在一起了”、ABC的顺序也是乱的,这些都无关紧要,这只是作为一个中间过渡文件。后面利用它导入到数据库中。

回复

使用道具 举报

千问 | 2010-7-20 01:30:19 | 显示全部楼层
1、在VBA编辑环境中选择菜单“工具-引用”,打开添加项目引用的对话框,在列表里面找到并钩上“Microsoft VBScript Regular Expression *.*”(最后的两个版本号无所谓),确定;2、然后使用如下代码:Option ExplicitSub ExtractCorrectAnswers()
Dim oRegExp As New RegExp
oRegExp.Global = True
oRegExp.MultiLine = True
oRegExp.Pattern = "正确答案:([A-Z])((?:[^\r]*)*)(\1[^\r]*?)((?:[A-Z][^\r]
回复

使用道具 举报

千问 | 2010-7-20 01:30:19 | 显示全部楼层
直接用 编辑 → 替换 也可以:查找内容:正确答案:([A-F])(*)(\1[!A-F^13]{1,})替 换 为:\3\2高级 → √使用通配符 → 全部替换即可-------------------2楼的正则表达式非常厉害,学习了。
回复

使用道具 举报

千问 | 2010-7-20 01:30:19 | 显示全部楼层
搜索“正确答案:”,然后将其之后的一个字符提取即可。如果要答案文字,如“c”答案中的“频率”,可以再次从提取字符的位置搜索一次该字符即可获取。具体语法可以用宏录制方法参考
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行