• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

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

介紹如何在 Excel 使用 VBA 的 Range.Find 方法尋找特定的資料或關鍵字等。


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

上市個股日成交資訊
上市個股日成交資訊

搜尋關鍵字

假設我們想在證卷名稱這一欄中尋找含有「國泰」的儲存格,可以使用以下的 VBA 程式,先決定搜尋的範圍之後,再使用 FIND 尋找:

Dim cell As Range

' 在 B1:B2000 範圍中,尋找資料含有「國泰」的儲存格
Set cell = Range("B1:B2000").FIND("國泰", LookIn:=xlValues, LookAt:=xlPart)

' 如果有找到,則顯示儲存格位置與內容
If Not cell Is Nothing Then
    MsgBox "位置:" & cell.Address & vbNewLine & "內容:" & cell.Value
End If

如果有發現結果,就會以 MsgBox 顯示類似這樣提示訊息。

提示訊息
提示訊息

顯示所有搜尋結果

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

Dim cell As Range
Dim firstAddress As String

' 搜尋範圍訂為 B1:B2000
With Range("B1:B2000")

    ' 尋找資料含有「國泰」的儲存格
    Set cell = .FIND("國泰", LookIn:=xlValues, LookAt:=xlPart)

    ' 若找到含有「國泰」的儲存格
    If Not cell Is Nothing Then

        ' 儲存找到的第一個位置
        firstAddress = cell.Address

        Do
            MsgBox "位置:" & cell.Address & vbNewLine & "內容:" & cell.Value

            ' 尋找下一個
            Set cell = .FindNext(cell)

        ' 若找到下一個不重複的儲存格,則繼續
        Loop While (Not cell Is Nothing) And (cell.Address <> firstAddress)

    End If
End With

由於 FindNext 在搜尋完整個範圍之後,會自動重新從開頭處繼續搜尋,所以我們必須先記住第一個搜尋結果的位置,後續的每次搜尋結果都要檢查其位置是否跟第一次結果的位置相同,藉此判斷 FindNext 是否已經將整個範圍搜尋完成。

完全符合文字內容

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

例如搜尋內容完全等於「國泰金」三個字的儲存格:

Dim cell As Range

' 在 B1:B2000 範圍中,尋找資料是「國泰金」的儲存格
Set cell = Range("B1:B2000").FIND("國泰金", LookIn:=xlValues, LookAt:=xlWhole)

' 如果有找到,則顯示儲存格位置與內容
If Not cell Is Nothing Then
    MsgBox "位置:" & cell.Address & vbNewLine & "內容:" & cell.Value
End If
提示訊息
提示訊息

參考資料:微軟官方文件

分類:Excel 標籤:VBA

讀者互動

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Primary Sidebar

搜尋

分類

Android Apple C/C++ Excel Linux OneNote PHP PowerPoint PowerShell Python R Windows Word 免費工具 創客 網站架設 線上工具 資料庫 遊戲 雜七雜八

近期文章

  • ITK 以 LabelStatisticsImageFilter 套用遮罩影像計算統計量教學與範例
  • iCloud 匯入 Google 聯絡人教學
  • CSS 檔案最小化與壓縮處理教學與範例
  • Python 使用 ITK 讀取、寫入、建立影像教學與範例
  • Python 以 random 模組產生隨機亂數教學與範例
  • iPhone 手機開啟 VoLTE 與 WiFi 通話 VoWiFi 功能教學
  • Python 以 NumPy 的 unique 函數篩選陣列不重複元素教學與範例
  • ITK 計算 3D 二元遮罩影像物件數量與體積

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

Copyright © 2020 · Office Guide