前幾天在104看到一個外包案,案件需求是抓取pdf檔案內的文字資料,並轉到excel並完成整理與分類。
剛好工作上有大量蒐尋多pdf檔案需要,但pdf檔案搜尋必須要個別個別開啟檔案後才能逐一搜尋,對文書工作佔一定比例的我來說,簡直是對黃金右手的折磨,所以誘使我再次努力study vba來滿足抓取pdf檔案文字功能的要求。
甘苦談:回想起念書時,如果會這招,那真的很好用
如何做到PDF轉EXCEL 此一部分因為現況有外包提案了,小編先藏私一下,暫不對外說明。
但分享如何做到多工作簿、多工作頁資料搜尋的功能,此一功能如果早在我念書時就study出來,當年應該可以以一檔百了。
簡要說明:
物件使用:Workbook、Worksheet、Range
迴圈使用:FOR EACH IN .....NEXT
物件方法:Range.find(what:=xxxxx)
結構化說明:
先宣告Workbook、Worksheet物件 ,再結合2層 "for each in 物件" 迴圈,就可以透過迴圈逐一在各工作工作簿、各工作頁中用usedrange.find方式來找尋指定關鍵字的位置。
完全迴圈用透過nothing 釋放物件。
最終作品:
2018.4.30 更新:
增加使用FINENEXT方法,把關鍵字搜尋部分,增加搜尋重複的部分,這樣才完整。
Do
Set FIND_NEXT = ws.Cells.FindNext(M_RNFIND)
'合計_add = 合計_add + 1
s1 = Sheets("DEMO").Range("D65565").End(xlUp).Row
If s1 = 0 Then
s1 = 1
Else
s1 = s1 + 1
End If
myFind = True
Sheets("DEMO").Range("D" & s1) = "在活頁簿 " & w1.Name & " _
的工作表名稱" & Chr(34) & "" & s1.Name & Chr(34) & "的" _
& "儲存格位置" & FIND_NEXT.Address & " 中"
'訊息函數
Loop While Not FIND_NEXT Is Nothing And _
Sheets("DEMO").Cells(FIND_NEXT.Row + ADD_ROW, _
FIND_NEXT.Column + ADD_COLUMN).Address <> m_stAddress
沒有留言:
張貼留言