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正则表达式在“后置处理器”下面) ...
随机推荐
- M2C的概念
M2C即Manufacturers to Consumer(生产厂家对消费者),生产厂家(Manufacturers)直接对消费者(Consumers)提供自己生产的产品或服务的一种商业模式,特点是流 ...
- Excel导出插件-VSTO
前言 一个游戏通常需要10多个Excel表格或者更多来配置,一般会通过导出csv格式读取配置. 本文提供导出Excel直接生成c#文件,对应数据直接生成结构体和数组,方便开发排错和简化重复写每个表格的 ...
- Spring,Struts2,MyBatis,Activiti,Maven,H2,Tomcat集成(三)——H2,MyBatis集成
1.配置h2,连接池,MyBatis Maven依赖: <!-- spring与数据库访问集成(非Hibernate) --> <dependency> <groupId ...
- eclipse工具maven项目打包文件不是最新修改的
1.问题描述:maven项目,完成一些功能开发后,在进行打包更新服务器系统时,本地eclipse工具对文件打成jar包操作,更新到服务器上没有修改的效果,包括打包整个工程为一个war包,也是有同样问题 ...
- python excel操作 练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称。每个sheet有个底色
练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称.每个sheet有个底色 #coding=utf-8 from openpyxl import Workb ...
- sublime工具安装完成后使用Emmet加快前端页面的开发速度
sublime的安装这里就不介绍了,很多人看到有些人在使用sublime时使用了一些快捷键非常快速的搭建一个简单的html,简单的结构就打起来了.不需要手动一个标签一个标签写. 其实是他们安装了Emm ...
- SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别
本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1.v2c.v3)进行区别! 四.SNMP协议数据单元 在SNMP管理中,管理站(NMS)和代理(Agent)之间交换的管理信息构成了SNMP报 ...
- vc++之stdafx.h
关于stdafx.h的解释,其实蛮多的,在vs中,既然创建c++工程的时候,默认会给生成main.cpp,并且自动包含了stdafx.h,而且stdafx.h不是c++标准的一部分,那么个人认为,理解 ...
- 20145322何志威《网络对抗技术》Exp6 信息搜集技术
20145322何志威<网络对抗技术>Exp6 信息搜集技术 实验内容 掌握信息搜集的最基础技能: (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发 ...
- Python3基础 lambda 简单示例
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...