在Excel中,選擇菜單“編輯”——“查找(F)…”命令或者按“Ctrl F”組合鍵,将彈出“查找和替換”對話框。
1. Find方法的作用
Find方法将在指定的單元格區域中查找包含參數指定數據的單元格,若找到符合條件的數據,則返回包含該數據的單元格;若未發現相匹配的數據,則返回Nothing。該方法返回一個Range對象,在使用該方法時,不影響選定區域或活動單元格。
2. Find方法的語法
<單元格區域>.Find (What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[SearchFormat])
[參數說明]
(1)<單元格區域>,必須指定,返回一個Range對象。
(2)參數What,必需指定。代表所要查找的數據,可以為字符串、整數或者其它任何數據類型的數據。對應于“查找與替換”對話框中,“查找内容”文本框中的内容。
(3)參數After,可選。指定開始查找的位置,即從該位置所在的單元格之後向後或之前向前開始查找(也就是說,開始時不查找該位置所在的單元格,直到Find方法繞回到該單元格時,才對其内容進行查找)。所指定的位置必須是單元格區域中的單個單元格,如果未指定本參數,則将從單元格區域的左上角的單元格之後開始進行查找。
(4)參數LookIn,可選。指定查找的範圍類型,可以為以下常量之一:xlValues、xlFormulas或者xlComments,默認值為xlFormulas。對應于“查找與替換”對話框中,“查找範圍”下拉框中的選項“值、公式、批注”。
(5)參數LookAt,可選。可以為以下常量之一:XlWhole或者xlPart,用來指定所查找的數據是與單元格内容完全匹配還是部分匹配,默認值為xlPart。對應于“查找與替換”對話框中,“單元格匹配”複選框。
(6)參數SearchOrder,可選。用來确定如何在單元格區域中進行查找,是以行的方式(xlByRows)查找,還是以列的方式(xlByColumns)查找,默認值為xlByRows。對應于“查找與替換”對話框中,“搜索”下拉框中的選項。
(7)參數SearchDirection,可選。用來确定查找的方向,即是向前查找(XlPrevious)還是向後查找(xlNext),默認的是向後查找。
(8)參數MatchCase,可選。若該參數值為True,則在查找時區分大小寫。默認值為False。對應于“查找與替換”對話框中,“區分大小寫”複選框。
(9)參數MatchByter,可選。即是否區分全角或半角,在選擇或安裝了雙字節語言時使用。若該參數為True,則雙字節字符僅與雙字節字符相匹配;若該參數為False,則雙字節字符可匹配與其相同的單字節字符。對應于“查找與替換”對話框中,“區分全角/半角”複選框。
(10)參數SearchFormat,可選,指定一個确切類型的查找格式。對應于“查找與替換”對話框中,“格式”按鈕。當設置帶有相應格式的查找時,該參數值為True。
在每次使用Find方法後,參數LookIn、LookAt、SearchOrder、MatchByte的設置将保存。如果下次使用本方法時,不改變或指定這些參數的值,那麼該方法将使用保存的值。(在VBA中設置的這些參數将更改“查找與替換”對話框中的設置;同理,更改“查找與替換”對話框中的設置,也将同時更改已保存的值。也就是說,在編寫好一段代碼後,若在代碼中未指定上述參數,可能在初期運行時能滿足要求,但若用戶在“查找與替換”對話框中更改了這些參數,它們将同時反映到程序代碼中,當再次運行代碼時,運行結果可能會産生差異或錯誤。若要避免這個問題,在每次使用時建議明确的設置這些參數)
(findnext方法)介紹
說明:可以使用該方法繼續執行Find方法所進行的查找,查找前一個與Find方法中所指定條件的數據相匹配的單元格,返回代表該單元格的Range對象。在使用該方法時,不影響選定區域或活動單元格
語法:<單元格區域>.FindNext(After)
參數After Variant 類型,可選。指定一個單元格,查找将從該單元格之後開始。此單元格相應于從用戶界面查找時的活動單元格位置。注意,After 必須是查找區域中的單個單元格。請記住查找是從該單元格之後開始的;直到本方法環繞到此單元格時,才檢測其内容。如果未指定本參數,查找将從區域的左上角單元格之後開始。
(FindPrevious方法)介紹
說明:可以使用該方法繼續執行Find方法所進行的查找,查找前一個與Find方法中所指定條件的數據相匹配的單元格,返回代表該單元格的Range對象。在使用該方法時,不影響選定區域或活動單元格。
語法<單元格區域>.FindPrevious(After)
參數After,可選。代表所指定的單元格,将從該單元格之前開始進行查找。開始時不查找該位置所在的單元格,直到FindPrevious方法繞回到該單元格時,才對其内容進行查找。所指定的位置必須是單元格區域中的單個單元格,如果未指定本參數,則将從單元格區域的左上角的單元格之前開始進行查找。
當查找到指定查找區域的起始位置時,本方法将環繞至區域的末尾繼續查找。發生環繞後,為停止查找,可保存第一次找到的單元格地址,然後測試下一個查找到的單元格地址是否與其相同,作為判斷查找退出的條件,以避免出現死循環。
代碼示例:二次查找 findnext
Sub findnext1()
'二次查找,在上次查找的基礎上再次向後查找
Dim MRG As Range
Set MRG = Range("D:D").Find("A", lookat:=xlPart)
MsgBox MRG.Address
Set mrg1 = Range("D:D").FindNext(MRG)
MsgBox mrg1.Address
End Sub
代碼解析
sub findnext1()
Dim MRG As Range
'聲明 變量MRG為單元格對象(這個變量可能裝一個單元格也可能裝一個單元格區域若幹單元格,甚至可能是若幹不相鄰的單元格。隻要是單元格這個變量都可以裝)
Set MRG = Range("D:D").Find("A",lookat:=xlPart)
'在D列查找"A",将第一個存儲“A”的單元格對象賦值給MRG,參數設定為單元格匹配,從D1之後開始查找(不含D1),理由見上方說明,此時MRG是工作表的某一個單元格了,而不再是其他的了,除非你再次進行賦值來改變
MsgBox MRG.Address
'返回單元值為“A”的單元格地址
Set mrg1 = Range("D:D").FindNext(MRG)
'在D列MRG這個單元格對象之後再次查找“A”
MsgBox mrg1.Address
'返回MRG之後單元值為“A”的單元格地址
End Sub
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!