2020年10月24日 星期六

Excel VBA pdf to excel (pdf檔案文字資料轉excel)+重複資料蒐尋

 前幾天在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


沒有留言:

張貼留言

指數變化(2024.05.17)

指數變化(2024.05.17) 上周焦點:         5/9當周焦點                          事實:fed與非農就業,引起投資市場對降息有加速,但肯定的是,fed說不加息了。                        美國密西根大學信心指數 ...