Excel VBA Find 搜尋資料、關鍵字教學與範例 - Office 指南

文章推薦指數: 80 %
投票人數:10人

FIND("國泰", LookIn:=xlValues, LookAt:=xlPart) ' 如果有找到,則顯示儲存格位置與內容 If Not cell Is Nothing Then MsgBox "位置:" & cell. 跳至主要導覽跳至主要內容跳至主要資訊欄介紹如何在Excel使用VBA的Range.Find方法尋找特定的資料或關鍵字等。

這個Excel中包含了臺灣證券交易所上市個股日成交資訊,以下將示範如何使用ExcelVBA程式搜尋其中的資料。

上市個股日成交資訊 搜尋關鍵字 假設我們想在證卷名稱這一欄中尋找含有「國泰」的儲存格,可以使用以下的VBA程式,先決定搜尋的範圍之後,再使用FIND尋找: DimcellAsRange '在B1:B2000範圍中,尋找資料含有「國泰」的儲存格 Setcell=Range("B1:B2000").FIND("國泰",LookIn:=xlValues,LookAt:=xlPart) '如果有找到,則顯示儲存格位置與內容 IfNotcellIsNothingThen MsgBox"位置:"&cell.Address&vbNewLine&"內容:"&cell.Value EndIf 如果有發現結果,就會以MsgBox顯示類似這樣提示訊息。

提示訊息 顯示所有搜尋結果 如果想要顯示指定範圍中所有符合的搜尋結果,可以使用迴圈搭配FindNext的方式逐一顯示每一個符合條件的搜尋結果。

DimcellAsRange DimfirstAddressAsString '搜尋範圍訂為B1:B2000 WithRange("B1:B2000") '尋找資料含有「國泰」的儲存格 Setcell=.FIND("國泰",LookIn:=xlValues,LookAt:=xlPart) '若找到含有「國泰」的儲存格 IfNotcellIsNothingThen '儲存找到的第一個位置 firstAddress=cell.Address Do MsgBox"位置:"&cell.Address&vbNewLine&"內容:"&cell.Value '尋找下一個 Setcell=.FindNext(cell) '若找到下一個不重複的儲存格,則繼續 LoopWhile(NotcellIsNothing)And(cell.Address<>firstAddress) EndIf EndWith 由於FindNext在搜尋完整個範圍之後,會自動重新從開頭處繼續搜尋,所以我們必須先記住第一個搜尋結果的位置,後續的每次搜尋結果都要檢查其位置是否跟第一次結果的位置相同,藉此判斷FindNext是否已經將整個範圍搜尋完成。

完全符合文字內容 上面的範例都是搜尋內容含有指定關鍵字的儲存格,如果想要搜尋內容完全等於指定的文字,可以將LookAt參數改為xlWhole。

例如搜尋內容完全等於「國泰金」三個字的儲存格: DimcellAsRange '在B1:B2000範圍中,尋找資料是「國泰金」的儲存格 Setcell=Range("B1:B2000").FIND("國泰金",LookIn:=xlValues,LookAt:=xlWhole) '如果有找到,則顯示儲存格位置與內容 IfNotcellIsNothingThen MsgBox"位置:"&cell.Address&vbNewLine&"內容:"&cell.Value EndIf 提示訊息 參考資料:微軟官方文件 讀者互動方式 發佈留言取消回覆發佈留言必須填寫的電子郵件地址不會公開。

必填欄位標示為*留言*顯示名稱* 電子郵件地址* 個人網站網址 主要資訊欄搜尋 近期文章 Linux檢查、測試CPUAES-NI硬體加速加密指令集教學 CentOSLinux7.9自行編譯、安裝OpenSSH9.0p1伺服器教學與範例 Python使用zipfile模組壓縮、解壓縮ZIP檔案教學與範例 Python以LINENotify自動傳送即時訊息、圖片教學與範例 Linux使用Prometheus與Grafana監控伺服器狀態、發送告警Email簡訊教學與範例 Linux設定pam_tty_audit記錄SSH使用者操作指令教學與範例 Linux封鎖、解鎖登入失敗次數過多的帳號pam_faillock教學與範例 Python使用pytube自動下載YouTube影片教學與範例 推薦網站 Udemy線上教學課程 Coursera線上教學課程 關注本站 電子郵件Facebook 公益 家扶基金會 台灣世界展望會 Yahoo奇摩公益 igiving公益網 兒福聯盟



請為這篇文章評分?