20170724wdVBA正则表达式提取答案到Excel
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的更多相关文章
- JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取
前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...
- JMeter中的关联-正则表达式提取(2)
JMeter获取正则表达式中的提取的所有关联值的解决方法: 需求如下: { : ", : "results": : [ : : { : : : "total_e ...
- JMeter中的关联-正则表达式提取(1)
运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联. jmeter之关联 的个人理解: 关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数 ...
- asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
无论你用什么语言,正则表达式的处理方法都是非常灵活.高效的,尤其是对某些字符串的抓取.过滤方面,更显其优势. 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的 ...
- Jmeter—5 关联 响应数据传递-正则表达式提取器
在测试过程中,遇到一个问题:用户登录成功后服务器会返回一个登录凭证,之后所有的操作都需要带上此凭证.我们怎么获取登录凭证并传递给后续的操作? Jmeter提供了正则表达式提取器,用变量提取参数,后续通 ...
- c# 使用正则表达式 提取章节小说正文全本篇
这一节主要内容是使用正则表达式提取网站的正文,主要面向于小说章节网站.其中涉及到一些其他知识点,比如异步读取.异步流写入等,代码中都会有详细的注解.现在流行的网络文学都是每日一更或几更,没有一个统一的 ...
- JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇
前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获 ...
- JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一)概述及简单实例
上文我们讲述了如何对 HTTP请求 的响应数据进行断言,以判断响应是否符合我们的预期,敬请参阅:JMeter学习-007-JMeter 断言实例之一 - 响应断言 那么我们如何获取 HTTP请求 响应 ...
- Jmeter正则表达式提取器的使用方法(转)
下面简单介绍一下Jmeter正则表达式提取器的使用方法. 1.添加Jmeter正则表达式提取器:在具体的Request下添加Jmeter正则表达式提取器(Jmeter正则表达式在“后置处理器”下面) ...
随机推荐
- python 循环队列的实现
最近在做一个东西的时候发现需要用到循环队列,实现先进先出(FIFO),不断往里面添加数据,当达到某个限定值时,最先进去的出去,然后再添加.之后需要对队列里面的内容进行一个筛选,作其他处理.首先我想到了 ...
- Q-learning简明实例Java代码实现
在<Q-learning简明实例>中我们介绍了Q-learning算法的简单例子,从中我们可以总结出Q-learning算法的基本思想 本次选择的经验得分 = 本次选择的反馈得分 + 本次 ...
- 随意给一组数,找出满足一下条件的a[i],a[i]左边的数小于等于a[i],a[i]右边的数大于等于a[i]
使用一个额外数组记录每个数后面的最小值是多少,一个额外数组记录一个数前面的最大值是多少,当然,为了减少空间复杂度,可以使用一个数字记录一个数字前面最大值是多少.算法如下: public List< ...
- Linux中编写Bash脚本的10个技巧
Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 ...
- 4 个技巧学习 Golang
到达 Golang 大陆:一位资深开发者之旅. 2014 年夏天…… IBM:“我们需要你弄清楚这个 Docker.” 我:“没问题.” IBM:“那就开始吧.” 我:“好的.”(内心声音):”Doc ...
- 在python3下使用OpenCV 显示图像
在Python3下用使用OpenCV比在C,C++里开发不止快捷一点点, 原型开发的时候蛮有用. 这里用的OpenCV 加载图片, 用的imshow画图 # -*- coding: utf-8 -*- ...
- troubleshooting-Container 'PHYSICAL' memory limit
原因分析 CDH 集群环境没有对 Container分配足够的运行环境(内存) 解决办法 需要修改的配置文件,将具体的配置项修改匹配集群环境资源.如下: 配置文件 配置设置 解释 计算值(参考) ya ...
- github客户端上传代码
在window下安装github客户端上传代码 第一步:创建Github新账户 第二步:新建仓库 第三步:安装Github shell程序,地址:http://windows.github.com/ ...
- 【maven】maven打包deploy时候报错:Connect to repo.maven.apache.org:443
使用maven打包报错如下: [ERROR] Plugin org.springframework.boot:spring-boot-maven-plugin:1.5.4.RELEASE or one ...
- javascript的一些在IE下不支持的函数小结
// ============ isArray ===============// // isArray function isArray(value){ return Object.prototyp ...