測試環境 Windows 10 + Excel 2016
透過Range.Find 方法搜尋資料 , 參考文章 – https://learn.microsoft.com/zh-tw/office/vba/api/excel.range.find
語法:
expression.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
expression 代表 Range 物件的變數。
範例 1
在指定範例中尋找含有值為 2 的儲存格並全部變更為 5.
Sub FindValue() Dim c As Range Dim firstAddress As String With Worksheets(1).Range("A1:D1") Set c = .Find(2, lookin:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do c.Value = 5 Set c = .FindNext(c) Loop While Not c Is Nothing End If End With End Sub
說明:
- With Worksheets(1).Range(“A1:D1”)
這邊使用到 With 語句,可以讓我們指定一個 物件或 (或是使用者定義的類型) ,後面就不需要重複指定 , 詳細請參考 https://learn.microsoft.com/zh-tw/office/vba/language/concepts/getting-started/using-with-statements - .Find(2, lookin:=xlValues)
find 的參數- 2 要找的值的內容
- lookin:=xlValues 指定要找值
- .FindNext(c)
使用 FindNext 方法來重複進行搜尋(也可使用 FindPrevious 往前找).
範例 2
在指定範例中尋找含有值為 abc 的儲存格並全部變更為 xyz.
Sub FindString() Dim c As Range Dim firstAddress As String With Worksheets(1).Range("A1:D1") Set c = .Find("abc", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do c.Value = Replace(c.Value, "abc", "xyz") Set c = .FindNext(c) Loop While Not c Is Nothing End If End With End Sub
沒有解決問題,試試搜尋本站其他內容