Range.Find 方法 (Excel)

您所在的位置:网站首页 excel的find用法 Range.Find 方法 (Excel)

Range.Find 方法 (Excel)

2023-02-12 06:29| 来源: 网络整理| 查看: 265

Range.Find 方法 (Excel) 發行項 02/04/2023

會尋找範圍中的特定資訊。

注意事項

對於開發跨多個平台,擴充使用者 Office 體驗的解決方案感到興趣嗎? 請參閱新的 Office 增益集模型。 與 VSTO 增益集和解決方案相比,Office 增益集的佔用空間較小,而且您可以使用幾乎任何網頁程式技術 (例如 HTML5、JavaScript、CSS3 和 XML) 來建立這些增益集。

語法

expression.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

expression 代表 Range 物件的變數。

參數 名稱 必要/選用 資料類型 描述 What 必要 Variant 要搜尋的資料。 可以為字串或任何 Microsoft Excel 資料類型。 After 選用 Variant 要在其後開始搜尋的儲存格。 這個儲存格對應於從使用者介面執行搜尋時的作用中儲存格位置。

請注意,After 必須是搜尋範圍中的單一儲存格。 請記住搜尋是在這個儲存格之後開始;直到該方法循環回到指定的儲存格時,才會搜尋該儲存格。

如果您未指定這個引數,則搜尋會在範圍左上角的儲存格之後開始。

LookIn 選用 Variant 可以是下列其中一個 XlFindLookIn 常數︰xlFormulas、xlValues、xlComments 或 xlCommentsThreaded。 LookAt 選用 Variant 可以為下列其中一個 xlLookAt 常數:xlWhole 或 xlPart。 SearchOrder 選用 Variant 可以為下列其中一個 XlSearchOrder 常數:xlByRows 或 xlByColumns。 SearchDirection 選用 Variant 可以是下列其中之一種 XlSearchDirection 常數:xlNext 或 xlPrevious。 MatchCase 選用 Variant True 表示搜尋會區分大小寫。 預設值為 False。 MatchByte 選用 Variant 只有當您已選取或安裝雙位元組語言支援時,才能使用。 若為 True,則雙位元組字元只能符合雙位元組字元。 若為 False,則雙位元組字元可符合其對等的單位元組字元。 SearchFormat 選用 Variant 搜尋格式。 傳回值

Range 物件,代表找到該項資訊的第一個儲存格。

註解

如果沒有找到符合的儲存格,則此方法會傳回 Nothing。 Find 方法不會影響選取範圍或作用中儲存格。

每次您使用此方法時,都會儲存 LookIn、LookAt、SearchOrder 和 MatchByte 的設定。 如果下次呼叫此方法時未指定這些引數的值,便會使用儲存的值。 設定這些引數會變更 [尋找] 對話方塊中的設定,而變更 [尋找] 對話方塊中的設定則會變更您省略引數時使用的儲存值。 若要避免發生問題,每次使用此方法時,請明確設定這些引數。

使用 FindNext 及 FindPrevious 方法以重複進行搜尋。

當搜尋到達所指定搜尋範圍的結尾時,它會折回至範圍的開始。 若要在發生折回時停止搜尋,請儲存第一個找到之儲存格的地址,然後測試每個後續找到的儲存格位址是否與這個儲存的地址相等。

若要尋找符合更複雜圖樣的儲存格,請使用 For Each...Next 陳述式及 Like 運算子。 例如,下列程式碼會在 A1:C5 範圍內搜尋字型名稱以 Cour 開始的所有儲存格。 當 Microsoft Excel 找到符合的儲存格時,會將其字型變更為 Times New Roman。

For Each c In [A1:C5] If c.Font.Name Like "Cour*" Then c.Font.Name = "Times New Roman" End If Next` 範例

這個範例會在工作表 1 內的 A1:A500 範圍內尋找含有值為 2 的所有儲存格,並將這些儲存格的值全部變更為 5。 也就是說,值 1234 和 99299 都包含 2,而這兩個儲存格的值都會變成 5。

Sub FindValue() Dim c As Range Dim firstAddress As String With Worksheets(1).Range("A1:A500") 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

這個範例會在工作表 1 的 A1:A500 範圍內尋找含有 "abc" 子字串的所有儲存格,然後以 "xyz" 取代 "abc"。

Sub FindString() Dim c As Range Dim firstAddress As String With Worksheets(1).Range("A1:A500") 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 支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3