2016-02-19 56 views
0

我想创建一个VBA脚本,它将读取我已经从PDF文件转换的文本文件,并在搜索词后拉出关键信息。所有文本文件将位于中心位置C:\文本VBA输出文本文件数据到excel与映射表

在这些文本文件的每个文本文件中是我想要提取并放入Excel中的列的信息。搜索词有助于识别信息,但每个文本文件中的搜索词可能不同,因此我需要创建一个搜索词表。一旦它找到一个文本文件中的信息,它就可以移动到下一个文本文件中,它不需要发布出现在文本文件中的每个搜索词的实例。

例子: 我找的账号和金额

文本文件1:帐号可以在文本文件中通过搜索词“帐号:”被发现和金额可以通过搜索找到“金额:”

账号:1234 金额:$ 10

文本文件2:帐号可以在文本文件中通过搜索词中找到‘帐户费用‘

’及金额可以通过搜索找到’

账户00090 成本25

文本文件3:帐号可以在文本文件中通过搜索词“初始数”和含量来发现可以通过搜索“总计”

初始数量555555555 被发现总计$ 90.02

如此重要我想创建引用这些词语搜索映射表和它只是把在检索词后的信息。如果需要添加新的搜索词,我总是可以添加到映射表中。

输出将必要把所有的账号数据到列A1,所有的流量数据将进入B1

+3

那么问题是什么? *确切地说*你坚持哪部分,你已经尝试了什么,以及当你尝试过时发生了什么? –

+0

你好Tim,我对VBA很新,所以我只复制了其他代码段。以下是将PDF文件转换为文本的当前代码,然后在PDF中搜索关键词以获取开始和结束字符串,并将信息发布到Excel中的输出表中。我正在寻找一种方法来添加多个关键字,而不是为输出创建新的选项卡。 –

+0

该代码可以在http://www.business-spreadsheets.com/forum.asp?t=884找到,它是Run_Extraction()宏 –

回答

2

我写的代码示例指点。你可能需要迭代相同的一块休息。你可以添加多个条件来搜索其他模式(只是一个建议)

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 
+0

你好Raju感谢你发布这个我会测试它我对VBA很新,所以它可能需要我一些时间和试验和错误。我知道我正在寻找一种方法来引用Excel文档中列表中的关键词列表,而不是对VBA代码中的关键词进行硬编码。 –

+0

@JustinStaugaitis,你解决了你的问题吗? – Raju

+0

我需要一些时间来选择这个备份,我不想失去你的文章。谢谢 –