Public Sub RegExtractData()
Dim StartTime, UsedTime
StartTime = VBA.Timer Dim FilePath$
Dim FileName$
Dim doc As Document
Dim Arr() As String
Dim ExamNo As String
Dim Index As Long
Dim Count As Long Dim xlApp As Object 'Excel.Application
Dim wb As Object 'Excel.Workbook
Dim sht As Object 'Excel.Worksheet
Dim Reg As Object, Mh As Object, OneMh As Object
Set Reg = CreateObject("Vbscript.Regexp")
With Reg
.MultiLine = True
.Global = True
.Ignorecase = False
End With Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone FilePath = ThisDocument.Path & "\试卷\"
FileName = Dir(FilePath & "*.doc*") Count = 0
ReDim Arr(1 To 3, 1 To 1) Do While FileName <> ""
Debug.Print FilePath & FileName
Set doc = Application.Documents.Open(FilePath & FileName)
Index = 0
Content = doc.Content.Text '试卷编号:0199
Reg.Pattern = "(?:试卷编号:)(\S+?)(?:[\s]+?)"
Set Mh = Reg.Execute(Content)
ExamNo = "'" & Mh.Item(0).submatches(0)
Debug.Print ExamNo '答案:A|B|C
Reg.Pattern = "(?:答案:)(\S+?)(?:[\s]+?)"
Set Mh = Reg.Execute(Content)
For Each OneMh In Mh
Index = Index + 1
Count = Count + 1
ReDim Preserve Arr(1 To 3, 1 To Count)
Arr(1, Count) = ExamNo
Arr(2, Count) = Index
Arr(3, Count) = OneMh.submatches(0)
Next OneMh doc.Close
FileName = Dir
Loop Set Reg = Nothing Application.ScreenUpdating = True
Application.DisplayAlerts = wdAlertsAll Set xlApp = CreateObject("Excel.Application") 'Excel.Application
With xlApp
Set wb = xlApp.Workbooks.Add 'Open(ThisDocument.Path & "\" & "答案模板.xls")
With wb
Set sht = .Worksheets("Sheet1")
With sht
.Range("A1:C1").Value = Array("试卷编号", "题号", "答案")
.Range("A2").Resize(Count, 3).Value = xlApp.WorksheetFunction.Transpose(Arr)
End With
'xlApp.WorksheetFunction.Transpose (Arr)
.SaveAs ThisDocument.Path & "\" & Format(Now(), "yyyymmdd-hhmm") & "-答案.xls"
.Close True
End With
.Quit
End With Set xlApp = Nothing
Set wb = Nothing
Set sht = Nothing
UsedTime = VBA.Timer - StartTime
MsgBox "提取完成!用时" & Format(UsedTime, "0.00 秒。") End Sub

  

20170724wdVBA正则表达式提取答案到Excel的更多相关文章

  1. JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

    前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...

  2. JMeter中的关联-正则表达式提取(2)

    JMeter获取正则表达式中的提取的所有关联值的解决方法: 需求如下: { : ", : "results": : [ : : { : : : "total_e ...

  3. JMeter中的关联-正则表达式提取(1)

    运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联. jmeter之关联 的个人理解: 关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数 ...

  4. asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

    无论你用什么语言,正则表达式的处理方法都是非常灵活.高效的,尤其是对某些字符串的抓取.过滤方面,更显其优势. 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的 ...

  5. Jmeter—5 关联 响应数据传递-正则表达式提取器

    在测试过程中,遇到一个问题:用户登录成功后服务器会返回一个登录凭证,之后所有的操作都需要带上此凭证.我们怎么获取登录凭证并传递给后续的操作? Jmeter提供了正则表达式提取器,用变量提取参数,后续通 ...

  6. c# 使用正则表达式 提取章节小说正文全本篇

    这一节主要内容是使用正则表达式提取网站的正文,主要面向于小说章节网站.其中涉及到一些其他知识点,比如异步读取.异步流写入等,代码中都会有详细的注解.现在流行的网络文学都是每日一更或几更,没有一个统一的 ...

  7. JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇

    前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获 ...

  8. JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一)概述及简单实例

    上文我们讲述了如何对 HTTP请求 的响应数据进行断言,以判断响应是否符合我们的预期,敬请参阅:JMeter学习-007-JMeter 断言实例之一 - 响应断言 那么我们如何获取 HTTP请求 响应 ...

  9. Jmeter正则表达式提取器的使用方法(转)

    下面简单介绍一下Jmeter正则表达式提取器的使用方法. 1.添加Jmeter正则表达式提取器:在具体的Request下添加Jmeter正则表达式提取器(Jmeter正则表达式在“后置处理器”下面)  ...

随机推荐

  1. python性能分析(一)——使用timeit给你的程序打个表吧

    前言 我们可以通过查看程序核心算法的代码,得知核心算法的渐进上界或者下界,从而大概估计出程序在运行时的效率,但是这并不够直观,也不一定十分靠谱(在整体程序中仍有一些不可忽略的运行细节在估计时被忽略了) ...

  2. VS2012快捷键突然不能用怎么办

    晚上做项目做着做着,就去弄了下键盘配置,可怜的娃娃~~~一下子弄得什么快捷键都不能用了,比如”注释:ctrl+k ctrl+c”;问题纠结了我一个多钟,好在最后结合了网络上各路英雄的idea;解决了问 ...

  3. Python 类中的"静态"成员变量

    本文环境:Python 2.7 一个类的三个对象实例的属性被同时修改 有段代码如下: class task_queue: queue=[] def append(self,obj): self.que ...

  4. trace

    linux 下程序的系统调用和信号调用跟踪工具 http://www.cnblogs.com/qingquan/archive/2011/07/18/2110072.html

  5. ReadResolve方法与序列化

    使用枚举实现的单例模式,不但可以防止利用反射强行构建单例对象,而且可以在枚举类对象被反序列化的时候,保证反序列的返回结果是同一对象. 对于其他方式实现的单例模式,如果既想要做到可序列化,又想要反序列化 ...

  6. redis.conf 配置 详解 中文 2.8

        # redis version 2.8.19   # 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1m ...

  7. BZOJ5131: [CodePlus2017年12月]可做题2

    BZOJ没有题面,差评 洛谷的题目链接 题解 其实这题很久之前就写了,也想写个题解但是太懒了,咕到了今天 在typora写完题解不想copy过来再改格式了,于是直接贴截图qwq #include &l ...

  8. BZOJ4401: 块的计数 思维题

    Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构——块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...

  9. 3G下的无压缩视频传输(基于嵌入式linux) (转载)

    本课题研究嵌入式系统在数据采集,3G无线通信方面的应用,开发集视频采集.地理信息采集.无线传输.客户机/服务器模式于一体的车载终端,实现终端采集视频与GPS信息的传输,支持服务器端显示视频与GPS信息 ...

  10. P4-Related Tools Installation

    P4-Related Tools Installation 安装P4相关工具的步骤和说明. 本说明只适用于 Ubuntu 14.04 系统. 推荐安装的其他工具 mininet:SDN网络仿真工具 v ...