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. MySQL从删库到跑路_高级(五)——触发器

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.触发器简介 1.触发器简介 触发器是和表关联的特殊的存储过程,可以再插入,删除或修改表中的数据时触发执行,比数据 ...

  2. python webdriver 显示等待判断元素是可以被点击的,但是执行脚本时,却提示元素不能点击的解决办法?

    我之前运行没问题的环境是firefox版本50,对应的驱动是没有问题的,现在firefox自动升级到了60,驱动没有变,我试着把浏览器装回了50,再试就好了, 所以应该是浏览器跟驱动geckodriv ...

  3. Qt的四个常见的图像叠加模式

    Qt的QPainter::CompositionMode提供了多种图像叠加的模式.常见的有QPainter::CompositionMode_SourceOver, QPainter::Composi ...

  4. echart知识点、常用图形

    原文地址:https://www.cnblogs.com/kewenxin/p/9338272.html 本文是自己在项目中需要运用到的echarts图形进行整理,都有完整的代码.echarts原型, ...

  5. P4878 [USACO05DEC]layout布局

    P4878 [USACO05DEC]layout布局 差分约束 最短路径最长路,最长路径最短路 本题求的是最长路径,所以跑最短路 根据题意连边,然后spfa即可 注意要判断图的连通性,所以新建一个虚拟 ...

  6. 20145313张雪纯Exp8 Web基础

    回答问题 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域:包含了文本框. ...

  7. Android 实践项目开发 总结

      Android 实践项目开发 总结 课程:移动平台应用开发实践  班级:201592  姓名:杨凤  学号:20159213 成绩:___________       指导老师:娄嘉鹏       ...

  8. 25个c#知识点

    网站地址:http://m.3y.uu456.com/mbp_56hl91r1rx5uqa87qrzo_1.html

  9. BZOJ2662: [BeiJing wc2012]冻结 spfa+分层图

    Description “我要成为魔法少女!”     “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„”        在这个愿望被实现以后的世界里,人们享 ...

  10. ASP.NET MVC & Web API项目中集成MEF

    1.实现方式 //WebApi需要实现的接口 System.Web.Http.Dependencies.IDependencyResolver //MVC需要实现的接口 System.Web.Mvc. ...