我正在尝试创建一个VBA脚本,该脚本将读取我从PDF文件转换的文本文件,并在搜索词之后提取关键信息。所有文本文件都将位于中心位置C:Work \ Text
在每个文本文件中都有我想要提取并放入Excel中的列的信息。搜索词有助于识别信息,但每个文本文件中的搜索词可能不同,因此我需要创建一个搜索词表。一旦它在一个文本文件中找到信息,它就可以移动到下一个文本文件中,它不需要发布出现在文本文件中的每个搜索词实例。
实施例: 我正在寻找账号和金额
文本文件1:通过搜索单词“帐号:”可在文本文件中找到帐号,可通过搜索“金额:”找到金额。
帐号:1234 金额:10美元
文本文件2:通过搜索“帐户”一词可以在文本文件中找到帐号,可以通过搜索“费用”找到金额
帐户00090 费用25
文本文件3:通过搜索单词“初始编号”可在文本文件中找到帐号,可通过搜索“总计”找到金额
初始编号555555555 总计$ 90.02
等
如此重要我想创建一个引用这些搜索词的映射表,并在搜索词之后引入信息。如果需要添加新的搜索词,我总是可以添加到映射表中。
输出必须将所有帐号编号数据放入A1栏,所有金额数据将进入B1
答案 0 :(得分:0)
我编写了示例代码来指示。您可能需要迭代同一块休息。您可以添加多个if条件来搜索其他模式(只是建议)
Const ForReading = 1
Dim strSearchFor
dim i=1
Set objExcel = CreateObject("Excel.Application")
‘Set objWorkbook = objExcel.Workbooks.Open("C:\test.xls")
objExcel.Application.Visible = True
objExcel.Workbooks.Add
For Each f In objFSO.GetFolder("C:\some\folder").Files
Set objFile = f.OpenAsTextStream
strSearchFor = "Account Number"
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
'do stuff with strLine and append to strText
If InStr(strLine, strSearchFor) <> 0 then
Wscript.Echo "Account Number found"
objExcel.Cells(i, 1).Value = strLine
i=i+1
Else
Wscript.Echo "Account Number not found"
End If
Loop
objFile.Close
Next
objExcel.ActiveWorkbook.SaveAs "C:\test.xls"
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit