ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-7-3 11:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ww0000 发表于 2013-7-3 10:56
你整理答案到文档最后是按顺序的,所以,测试文档中少了第34题后,整理出来的答案中将35题的答案放到34、 ...

你的答案部分也是没有34题答案的,题干中也没有34题,进行程序后,是正好的。没有错误

TA的精华主题

TA的得分主题

发表于 2013-7-3 11:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
多项选择题.zip (7.68 KB, 下载次数: 36) 请看附件中多选题的处理方法。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-3 11:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wx486 发表于 2013-7-3 11:08
请看附件中多选题的处理方法。

谢谢!多项选择题中,10以后的题,会将后面的数字也填入括号中!请测试! 行政处罚试题及答案(多选题).rar (8.52 KB, 下载次数: 18)

TA的精华主题

TA的得分主题

发表于 2013-7-3 11:20 | 显示全部楼层
ww0000 发表于 2013-7-3 10:56
你整理答案到文档最后是按顺序的,所以,测试文档中少了第34题后,整理出来的答案中将35题的答案放到34、 ...

可能是你的操作有问题。

vba.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-3 11:26 | 显示全部楼层
wx486 发表于 2013-7-3 11:20
可能是你的操作有问题。

没错,填答案是对的,提取答案到最后就不对了,你对一下34以后的答案!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-3 11:27 | 显示全部楼层
wx486 发表于 2013-7-3 11:08
请看附件中多选题的处理方法。

第10题以后的答案后面会多一个数字

TA的精华主题

TA的得分主题

发表于 2013-7-3 11:29 | 显示全部楼层
本帖最后由 wx486 于 2013-7-3 11:50 编辑
ww0000 发表于 2013-7-3 11:27
第10题以后的答案后面会多一个数字


今天专门给你服务了。


Sub 把文档尾段答案逐一写入题干2()
    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 Mid$(a(i), 1, Len(a(i)) - 1)
            .Parent.Collapse Direction:=wdCollapseEnd
        Loop
    End With
    With ActiveDocument.Content.Find
        .Text = "([A-Z]@)([0-9]@)([\))])"
        .Replacement.Text = "\1\3"
        .MatchWildcards = True
        .Execute Replace:=wdReplaceAll
    End With
End Sub




Sub 把文档尾段答案逐一写入题干()
Dim reg As Object, j%
Set reg = CreateObject("vbscript.regexp")
With reg
       .Global = True
       .Pattern = "[A-Z]+(?=[\d+\s])"
       .multiline = True
       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

TA的精华主题

TA的得分主题

发表于 2013-7-3 11:32 | 显示全部楼层
ww0000 发表于 2013-7-3 11:26
没错,填答案是对的,提取答案到最后就不对了,你对一下34以后的答案!

你看看24楼的动画,难道里面的答案不对??????

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-3 11:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wx486 发表于 2013-7-3 11:29
今天专门给你服务了。


不错,问题解决!

再就是要请教如何将多项题的答案整理到文档最后了!!

哈哈!谢谢你专门为我服务!中午我请客! 333.jpg 222.jpg 111.jpg 00.jpg
333.jpg
222.jpg
111.jpg
00.jpg

TA的精华主题

TA的得分主题

发表于 2013-7-3 12:01 | 显示全部楼层
ww0000 发表于 2013-7-3 11:44
不错,问题解决!

再就是要请教如何将多项题的答案整理到文档最后了!!

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

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2025-1-12 13:31 , Processed in 0.028740 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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