Excel VBA Find 搜尋資料、關鍵字教學與範例 - Office 指南
文章推薦指數: 80 %
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公益網
兒福聯盟
延伸文章資訊
- 1EXCEL VBA:儲存格@ 我的生活.我自己 - 隨意窩
Item(5,3) '引儲存格C5 '作用儲存格:ActiveCell ActiveCell. ... 201205310000EXCEL VBA:儲存格 ?未分類. 儲存格. [R1C1]格式...
- 2Range.Address 屬性(Excel) | Microsoft Docs
附註:以Excel VBA 7.1 進行測試的結果顯示不一定需要明確的起始點。 ... 下列範例對Sheet1 中的同一儲存格位址使用了四種不同的表達模式。
- 3cwchen.nou-2 - Excel VBA基礎入門班
來源Excel\VBE→選取欲複製的VBA程式碼→右鍵\複製; 目的Excel\VBE→插入\模組→ ... 取得任意儲存格的位址,可使用「Address屬性」回傳的位址為絕對位址「$A$2」。
- 4excel vba取得儲存格位置 - 軟體兄弟
excel vba取得儲存格位置, MsgBox “選取使用中工作表內正在使用的儲存格範圍,並顯示其位置” ActiveSheet. ... 01-14 取得與運算結果儲存格有直接關連性的運算來...
- 5Excel VBA Find 搜尋資料、關鍵字教學與範例 - Office 指南
FIND("國泰", LookIn:=xlValues, LookAt:=xlPart) ' 如果有找到,則顯示儲存格位置與內容 If Not cell Is Nothing Then MsgB...