2016-02-19 80 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

我需要一些時間來選擇這個備份,我不想失去你的文章。謝謝 –