excel搜索工作表指定列范圍中的數(shù)據(jù)替換其復(fù)制到另一個工作表中

      網(wǎng)友投稿 703 2025-04-02

      excel搜索工作表指定列范圍中的數(shù)據(jù)替換其復(fù)制到另一個工作表中

      這里的應(yīng)用場景如下:

      “ 在工作表 Sheet1 中存儲著數(shù)據(jù),現(xiàn)在想要在該工作表的第O 列至第T 列中搜索指定的數(shù)據(jù),如果發(fā)現(xiàn),則將數(shù)據(jù)所在行復(fù)制到工作表Sheet2 中。

      用戶在一個一級中輸入要搜索的數(shù)據(jù)值,然后自動將滿足前面條件的所有行復(fù)制到工作表Sheet2 中。”

      首先,使用用戶預(yù)先設(shè)計的輸入第一步,如下圖 1 所示。

      圖 1

      在該用戶常規(guī)模塊中編寫代碼:

      私人Sub cmdOK_Click()

      昏暗的工作簿

      調(diào)光行

      昏暗搜索范圍

      昏暗的發(fā)現(xiàn)

      Dim rngFoundCells作為范圍

      Dim rngFoundCell作為范圍

      昏暗的行

      Application.ScreenUpdating = False

      ‘ 賦值工作表Sheet1

      設(shè)置wks =工作表(“ Sheet1”)

      有星期

      ‘ 工作表中的最后一個數(shù)據(jù)行

      lngRow = .Range(“ A”&Rows.Count).End(xlUp).Row

      ‘ 被查找的單元格區(qū)域

      設(shè)置rngSearch = .Range(“ O2:T”&lngRow)

      “ 查找的數(shù)據(jù)文本值

      ‘ 由用戶在文本目錄輸入

      FindWhat =“ *”&Me.txtSearch.Text和“ *”

      ‘ 調(diào)用FindAll 函數(shù)查找數(shù)據(jù)值

      ‘ 存儲滿足條件的所有單元格

      設(shè)置rngFoundCells = FindAll(SearchRange:= rngSearch,_

      FindWhat:= FindWhat,_

      LookIn:= xlValues,_

      LookAt:= xlWhole,_

      SearchOrder:= xlByColumns,_

      MatchCase:=假,_

      BeginsWith:= vbNullString,_

      EndsWith:= vbNullString,_

      BeginEndCompare:= vbTextCompare)

      ‘ 如果沒有找到則稱為消息

      如果rngFoundCells什么都沒有,那么

      轉(zhuǎn)到SendInfo

      萬一

      ‘ 清空工作表Sheet2

      Sheets(“ Sheet2”)。Cells.Clear

      ‘ 獲取數(shù)據(jù)單元格所在的行并復(fù)制到工作表Sheet2

      對于rngFoundCells中的每個rngFoundCell

      lngCurRow = Val(Mid(rngFoundCell.Address,4,Len(rngFoundCell.Address)))

      范圍(“ A”&lngCurRow和“:Z”&lngCurRow)。

      Sheets(“ Sheet2”)。Cells(Rows.Count,1).End(xlUp).Offset(1)

      下一個rngFoundCell

      結(jié)束于

      Application.ScreenUpdating = True

      卸載我

      退出子

      SendInfo:

      MsgBox“ 沒有找到數(shù)據(jù) ”,,“ 查找 ”

      結(jié)束子

      代碼中使用的 FindAll 函數(shù)代碼如下:

      ‘ 自定義函數(shù)

      ‘ 獲取滿足條件的所有單元格

      函數(shù)FindAll(SearchRange AsRange,_

      FindWhat作為變體,_

      可選的LookIn為XlFindLookIn = xlValues,_

      XlLookAt = xlWhole的可選LookAt,_

      可選SearchOrder AsXlSearchOrder = xlByRows,_

      可選MatchCase為布爾值= False,_

      可選的BeginsWith As String = vbNullString,_

      可選的EndsWith As String = vbNullString,_

      可選的BeginEndCompare AsVbCompareMethod = vbTextCompare)作為范圍

      昏暗FoundCell作為范圍

      昏暗的FirstFound作為范圍

      DimLastCell作為范圍

      昏暗ResultRange作為范圍

      昏暗的XLookAt作為XlLookAt

      暗含為布爾

      Dim CompMode作為VbCompareMethod

      昏暗區(qū)域作為范圍

      昏暗的MaxRow只要長

      昏暗的MaxCol只要

      昏暗的BeginB為布爾

      將EndB昏暗為布爾值

      CompMode = BeginEndCompare

      如果BeginsWith <> vbNullString或EndsWith <> vbNullString然后

      XLookAt = xlPart

      其他

      XLookAt = LookAt

      萬一

      對于SearchRange.Areas中的每個區(qū)域

      有面積

      如果.Cells(.Cells.Count).Row> MaxRow然后

      MaxRow = .Cells(.Cells.Count).Row

      萬一

      如果.Cells(.Cells.Count).Column> MaxCol然后

      MaxCol = .Cells(.Cells.Count).Column

      萬一

      結(jié)束于

      下一個區(qū)域

      設(shè)置LastCell = SearchRange.Worksheet.Cells(MaxRow,MaxCol)

      出錯時轉(zhuǎn)到0

      設(shè)置FoundCell = SearchRange.Find(What:= FindWhat,_

      之后:= LastCell,_

      LookIn:= LookIn,_

      LookAt:= XLookAt,_

      SearchOrder:= SearchOrder,_

      MatchCase:= MatchCase)

      如果Not FoundCell一無所有

      設(shè)置FirstFound = FoundCell

      做到錯誤

      包含=錯誤

      如果BeginsWith = vbNullString AndEndsWith = vbNullString然后

      包含=正確

      其他

      如果BeginsWith <> vbNullString然后

      IfStrComp(Left(FoundCell.Text,Len(BeginsWith)),BeginsWith,BeginEndCompare)= 0然后

      包含=正確

      萬一

      萬一

      如果EndsWith <> vbNullString然后

      如果StrComp(Right(FoundCell.Text,Len(EndsWith)),EndsWith,BeginEndCompare)= 0

      包含=正確

      萬一

      萬一

      萬一

      如果Include = True,則

      如果ResultRange無效,則

      設(shè)置ResultRange = FoundCell

      其他

      設(shè)置ResultRange = Application.Union(ResultRange,F(xiàn)oundCell)

      萬一

      萬一

      設(shè)置FoundCell = SearchRange.FindNext(之后:= FoundCell)

      如果(FoundCell什么都沒有)然后

      退出做

      萬一

      如果(FoundCell.Address = FirstFound.Address)然后

      退出做

      萬一

      循環(huán)

      萬一

      設(shè)置FindAll = ResultRange

      結(jié)束功能

      這是一個通用函數(shù),直接拿來使用就行了,可用于在指定的區(qū)域查找并返回滿足條件的所有單元格。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:表格制作在線教學(xué)圖片(表格制作在線教學(xué)圖片大全)
      下一篇:excel2003按日期排序教程
      相關(guān)文章
      中文字幕亚洲不卡在线亚瑟| 亚洲日韩国产精品乱-久| 亚洲制服丝袜第一页| 亚洲国产精品久久久天堂 | 夜色阁亚洲一区二区三区| 亚洲午夜精品在线| 久久亚洲精品无码aⅴ大香| 国产亚洲成av人片在线观看| 亚洲乱码精品久久久久..| 国产成人高清亚洲一区久久 | 亚洲精品亚洲人成在线麻豆| 久久国产亚洲精品无码| 久久精品国产亚洲av麻豆小说| 久久精品国产精品亚洲色婷婷| 亚洲av综合色区| 亚洲AV无码乱码在线观看裸奔 | 亚洲色无码国产精品网站可下载| 亚洲人成网男女大片在线播放| 亚洲精品国产精品国自产网站| 国产亚洲福利在线视频| 亚洲另类无码专区首页| 亚洲欧美日韩综合久久久| 亚洲av片在线观看| 国产精品亚洲小说专区| 亚洲熟伦熟女新五十路熟妇| 中文字幕亚洲无线码a| 亚洲中文久久精品无码| 亚洲av最新在线网址| 亚洲人成在线观看| 亚洲国产精品综合一区在线| 亚洲宅男精品一区在线观看| 亚洲色大成网站www永久网站| 久久久久久亚洲精品无码| 亚洲国产精品人人做人人爽| 亚洲一级特黄大片在线观看| 亚洲最大激情中文字幕| 久久亚洲精品成人综合| 亚洲成年人免费网站| 美女视频黄免费亚洲| 亚洲爆乳无码精品AAA片蜜桃| 国产精品亚洲小说专区|