亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標(biāo)——亞洲寵物展覽會(huì)深度解析
642
2025-03-31
excel工作簿所有工作表中的多值替換
有兩個(gè)工作簿,一個(gè)工作簿中存放著要查找并替換成的文本,如下圖1所示,列A中是要查找的文本,將列A中查找到的文本替換成列B中相應(yīng)的文本,例如,將找到的“Excel”替換成“Excel”。
圖1
另一個(gè)工作簿中是我們要替換其文本的工作簿,我們要在該工作簿所有工作表中查找上圖1列A中的值并將找到的文本替成列B中的文本,如圖2所示。
圖2
要實(shí)現(xiàn)的結(jié)果如下圖3所示。
圖3
使用下面的VBA代碼來完成上述任務(wù)。在圖1所示的工作簿中,打開VBE,插入一個(gè)標(biāo)準(zhǔn)模塊,輸入代碼:
‘查找并替換指定工作簿中的多個(gè)文本
Sub MultiFindReplace()
Dim ReplaceListWB As Workbook
Dim ReplaceInWB As Workbook
Dim wks As Worksheet
Dim ReplaceIn As String
Dim ReplaceList As Range
Dim i As Long
‘獲取要進(jìn)行替換文本操作的工作簿
ReplaceIn =Application.GetOpenFilename( _
“要替換文本的工作簿, *.xls?”, 1, _
“選擇要替換文本的工作簿”)
‘如果單擊取消,則退出程序
If ReplaceIn =”False” Then Exit Sub
Application.ScreenUpdating = False
‘要替換文本的工作簿
Set ReplaceInWB = Workbooks.Open(ReplaceIn)
‘替換文本所在的工作簿
Set ReplaceListWB = ThisWorkbook
‘替換文本所在的區(qū)域
Set ReplaceList = ReplaceListWB.Worksheets(1). _
Cells(1,1).CurrentRegion
‘遍歷要替換文本的工作簿中所有工作表
For Each wks In ReplaceInWB.Worksheets
‘使用替換文本來替換工作表中的數(shù)據(jù)
With ReplaceList
For i = 2 To .Rows.Count
Call wks.UsedRange.Replace( _
.Cells(i,1).Value, _
.Cells(i,2).Value, _
xlPart, ,False)
Next i
End With
Next
‘保存并關(guān)閉要替換文本的工作簿
ReplaceInWB.Save
ReplaceInWB.Close
Application.ScreenUpdating = False
End Sub
運(yùn)行代碼,彈出下圖4所示的對話框,要求選擇要替換文本的工作簿文件。選擇工作簿文件后,將根據(jù)上圖1工作表中的文本自動(dòng)對該工作簿中的文本進(jìn)行查找和替換操作。
圖4
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(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)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。