ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 按要求复制答案到每题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-7-2 15:30 | 显示全部楼层 |阅读模式
按要求复制.rar (7.16 KB, 下载次数: 53)

能否利用宏将答案部分按题号复制到每题的括号内?
或者将每题括号内的答案复制到最后?

TA的精华主题

TA的得分主题

发表于 2013-7-2 21:37 | 显示全部楼层
本帖最后由 wx486 于 2013-7-3 08:04 编辑

针对附件文档,分别提供如下代码:
Sub 把文档尾段答案逐一写入题干()
Dim reg As Object, j%
Set reg = CreateObject("vbscript.regexp")
With reg
      .Global = True
      .Pattern = "[A-Z]"
      Set matches = .Execute(ActiveDocument.Paragraphs.Last.Range)
End With
Set reg = Nothing
With CreateObject("vbscript.regexp")
      .Global = True
      .MultiLine = True
j = 0
     Do While j < matches.Count
          For Each para In ActiveDocument.Paragraphs
              .Pattern = "[(/(]\s*[)/)]"
              If .test(para.Range) = True Then
                   para.Range = .Replace(para.Range, "(" & matches.Item(j) & ")")
                   j = j + 1
              End If
          Next
      Loop
End With
End Sub

Sub 把单选题各题答案按题号提取到文档末尾()
Dim matches, i%, str$
With CreateObject("vbscript.regexp")
    .Global = True
    .MultiLine = True
    .Pattern = "[A-Z](?=\s*[/))])"
    Set matches = .Execute(ActiveDocument.Content)
End With
For Each m In matches
    i = i + 1
    str = str & i & "、" & m & vbTab
Next
Selection.EndKey wdStory
Selection.InsertAfter Chr$(13) & str
End Sub

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-7-3 06:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
把单选题各题答案按题号提取到文档末尾
测试,最后一题没有实现。

TA的精华主题

TA的得分主题

发表于 2013-7-3 06:05 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-7-3 08:03 | 显示全部楼层
本帖最后由 wx486 于 2013-7-3 08:06 编辑
psystyle 发表于 2013-7-3 06:04
把单选题各题答案按题号提取到文档末尾
测试,最后一题没有实现。


哈哈,多谢支持。是我的错,把\s?[/))]中的?改为*。二楼代码已改,请测试。

TA的精华主题

TA的得分主题

发表于 2013-7-3 09:24 | 显示全部楼层
参考http://club.excelhome.net/thread-993054-1-1.html中sqhsqhli的代码,再给出以下代码,请测试。
Sub 把文档尾段答案逐一写入题干()
    Dim a, i As Integer
    ActiveDocument.Content.Find.Execute findtext:="^32", replacewith:="", Replace:=wdReplaceAll
    a = Split(ActiveDocument.Paragraphs.Last.Range, "、")
    'ActiveDocument.Paragraphs.Last.Range.Delete
    With ActiveDocument.Content.Find
        .Text = "[\((][\))]"
        .Forward = True
        .MatchWildcards = True
        Do While .Execute
            i = i + 1
            If i > UBound(a) Then
                MsgBox "题目与答案不一致,将退出"
                Exit Sub
            End If
            ActiveDocument.Range(.Parent.End - 1, .Parent.End - 1).InsertAfter Left(a(i), 1)
            .Parent.Collapse Direction:=wdCollapseEnd
        Loop
    End With
End Sub

Sub 把单选题各题答案按题号提取到文档末尾()
    Dim i%
    ActiveDocument.Content.Find.Execute findtext:="^32", replacewith:="", Replace:=wdReplaceAll
    ActiveDocument.Range.InsertAfter Chr(13) & "整理的答案是:"
    With ActiveDocument.Content.Find
        .Text = "[\((][A-Z]"
        .Forward = True
        .MatchWildcards = True
        Do While .Execute
            i = i + 1
            ActiveDocument.Range.InsertAfter i & "、" & Right(.Parent.Text, 1) & vbTab
            ActiveDocument.Range(.Parent.End - 1, .Parent.End) = ""
            .Parent.Collapse Direction:=wdCollapseEnd
        Loop
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2013-7-3 09:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 wx486 于 2013-7-3 09:47 编辑
psystyle 发表于 2013-7-3 06:05
能否用替换完成呢?


替换代码已帖到6楼。如果不用VBA,仅用替换,可能的情况是,有多少题,就要单击替换多少次,记得以前有类似的帖子,有这样的替换方法。

TA的精华主题

TA的得分主题

发表于 2013-7-3 09:43 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-3 10:05 | 显示全部楼层
wx486 发表于 2013-7-3 09:24
参考http://club.excelhome.net/thread-993054-1-1.html中sqhsqhli的代码,再给出以下代码,请测试。
Sub  ...

测试了好象有错,请检查,谢谢! 行政处罚试题及答案.rar (8.65 KB, 下载次数: 14)

TA的精华主题

TA的得分主题

发表于 2013-7-3 10:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 wx486 于 2013-7-3 10:28 编辑
ww0000 发表于 2013-7-3 10:05
测试了好象有错,请检查,谢谢!


请将文档最后的所有答案段落变成一段。
请按附件测试
行政处罚试题及答案.rar (13.94 KB, 下载次数: 32)


另:请确保你的文档没有自相矛盾现象及不必要的错误。第50题题干没有()。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 10:39 , Processed in 0.029762 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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