Excel-VBA實例教程-查找單元格_第1頁
Excel-VBA實例教程-查找單元格_第2頁
Excel-VBA實例教程-查找單元格_第3頁
Excel-VBA實例教程-查找單元格_第4頁
Excel-VBA實例教程-查找單元格_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ExcelVBA實例教程查找單元格1、使用Find方法在Excel中使用查找對話框可以查找工作表中特定內容的單元格,而在VBA中則使用Find方法,如下面的代碼所示。01.SubRngFind()02.DimStrFindAsString03.DimRngAsRange04.StrFind=InputBox(請輸入要查找的值:)05.IfTrim(StrFind)Then06.WithSheet1.Range(A:A)07.SetRng=.Find(What:=StrFind,_08.After:=.Cells(.Cells.Count),09.LookIn:=xlValues,_LookAt

2、:=xlWhole,_SearchOrder:=xlByRows,SearchDirection:=xlNext,13.MatchCase:=False)13.IfNotRngIsNothingThenApplication.GotoRng,TrueElseMsgBox沒有找到該單元格!EndIfEndWithEndIfEndSub代碼解析:RngFind過程使用Find方法在工作表Sheetl的A列中查找InputBox函數對話框中所輸入的值,并查找該值所在的第一個單元格。第6到第13行代碼在工作表Sheet1的A列中查找InputBox函數對話框中所輸入的值。應用于Range對象的Find

3、方法在區域中查找特定信息,并返回Range對象,該對象代表用于查找信息的第一個單元格。如果未發現匹配單元格,就返回Nothing,語法如下:01.expression.Find(What,After,LookIn,LookAt,SearchOrder,SearchDirection,MatchCase,MatchByte,SerchFormat)復制代碼參數expression是必需的,該表達式返回一個Range對象。參數What是必需的,要搜索的數據,可為字符串或任意數據類型。參數After是可選的,表示搜索過程將從其之后開始進行的單元格,必須是區域中的單個單元格。查找時是從該單元格之后開始

4、的,直到本方法繞回到指定的單元格時,才對其進行搜索。如果未指定本參數,搜索將從區域的左上角單元格之后開始。在本例中將After參數設置為A列的最后一個單元格,所以查找時從A1單元格開始搜索。參數LookIn是可選的,信息類型。參數LookAt是可選的,可為XILookAt常量的xlWhole或xlPart之一。參數SearchOrder是可選的,可為XISearchOrder常量的xlByRows或xlByColumns之一。參數SearchDirection是可選的,搜索的方向,可為XlSearchDirection常量的xlNext或xlPrevious之一。參數MatchCase是可選的

5、,若為True,則進行區分大小寫的查找。默認值為False。參數MatchByte是可選的,僅在選擇或安裝了雙字節語言支持時使用。若為True,則雙字節字符僅匹配雙字節字符。若為False,則雙字節字符可匹配其等價的單字節字符。參數SerchFormat是可選的,搜索的格式。每次使用Find方法后,參數LookIn、LookAt、SearchOrder和MatchByte的設置將保存。如果下次調用Find方法時不指定這些參數的值,就使用保存的值。因此每次使用該方法時請明確設置這些參數。如果工作表的A列中存在重復的數值,那么需要使用FindNext方法或FindPrevious方法進行重復搜索,

6、如下面的代碼所示。01.SubRngFindNext()02.01.SubRngFindNext()02.03.04.05.06.07.08.01.22.23.DimRngAsRangeDimFindAddressAsStringStrFind=InputBox(請輸入要查找的值:)IfTrim(StrFind)ThenWithSheet1.Range(A:A)SetRng=.Find(What:=StrFind,_After:=.Cells(.Cells.Count),_LookIn:=xlValues,_LookAt:

7、=xlWhole,_SearchOrder:=xlByRows,_SearchDirection:=xlNext,_MatchCase:=False)IfNotRngIsNothingThenFindAddress=Rng.AddressDoRng.Interior.ColorIndex=6SetRng=.FindNext(Rng)LoopWhileNotRngIsNothingAndRng.AddressFindAddressEndIfEndWithEndIf24.EndSub代碼解析:RngFindNext過程在工作表Sheetl的A列中查找InputBox函數對話框中所輸入的值,并將查到

8、單元格底色設置成黃色。第8行到第17行代碼使用Find方法在工作表Sheet1的A列中查找。第16行代碼將查找到的第一個單元格地址賦給字符串變量FindAddress。第18行代碼將查找到的單元格底色設置成黃色。第19行代碼使用FindNext方法進行重復搜索。FindNext方法繼續執行用Find方法啟動的搜索。查找下一個匹配相同條件的單元格并返回代表單元格的Range對象,語法如下:01.expression.FindNext(After)復制代碼參數expression是必需的,返回一個Range對象。參數After是可選的,指定一個單元格,查找將從該單元格之后開始。第20行代碼如果查找

9、到的單元格地址等于字符串變量FindAddress所記錄的地址,說明A列已搜索完畢,結束查找過程。運行RngFindNext過程,在InputBox函數輸入框中輸入“196.01”后結果如圖1所示。還可以使用FindPrevious方法進行重復搜索,FindPrevious方法的語法如下:expression.FindPrevious(After)FindPrevious方法和FindNext方法唯一的區別是FindPrevious方法查找匹配相同條件的前一個單元格而FindNext方法是查找匹配相同條件的下一個單元格。2、使用Like運算符使用Like運算符可以進行更為復雜的模式匹配查找,如

10、下面的代碼所示。01.SubRngLike()02.DimrngAsRange03.DimaAsInteger04.a=105.WithSheet206.Range(A:A).ClearContents07.ForEachrngIn.Range(B1:E1000)08.Ifrng.TextLike*a*Then09.Range(A&a)=rng.Texta=a+1EndIfNextEndWithEndSub代碼解析:RngLike過程使用ForEach.Next語句和Like運算符在單元格區域Bl:E10000中搜索含有“a”字符的單元格,找到匹配單元格以后將單元格的值寫入到A列中。第6行代碼

11、使用ClearContents方法清除A列區域的數據。第7行代碼使用ForEach.Next語句在單元格區域B1:E10000中循環。第8行代碼使用Like運算符在單元格區域B1:E10000中搜索含有“a”字符的單元格。Like運算符用來比較兩個字符串,語法如下:01.result=stringLikepattern復制代碼參數string是必需的,字符串表達式。參數pattern是必需的,字符串表達式。如果string與pattern匹配,則result為True;如果不匹配,則result為False。但是如果string或pattern中有一個為Null,則result為Null。參數

12、pattern可以使用通配符、字符串列表或字符區間的任何組合來匹配字符串。表格51列出pattern中允許的字符以及它們與什么進行匹配。pattern中的字符符合string中的字符任何單一字符*零個或多個字符#任何一個數字(0-9)charlistcharlist中的任何單一字符!charlist不在charlist中的任何單一字符表格1pattern中的匹配字符串第9行代碼將找到的匹配單元格的值寫入到A列中。運行RngLike過程結果如圖2所示。integerli_retOLEObjectole_1,lole_Sheet,lole_sheet1ole_1=CREATEOLEObjectli_ret=1li_ret=ole_1.ConnectToObject(excel.application)ifli_ret0thenli_ret=ole_1.ConnectToNewObject(excel.application)ifli_ret0thenMessageBox(提示,EXCEL連接失敗:+String(li_ret)returnendifendifole_1.Workbooks.open(E:part.xls)lole_sheet=ole_1.Application.ActiveWorkbook.W

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論