• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
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

讀者互動方式

發佈留言 取消回覆

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

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

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

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide