我有2個Excel表,我想查找和替換值,但是我希望有多個替換值取一個匹配值的點。Excel查找並用多個新值替換單個匹配值
Sheet 1: Sheet 2:
Match Value Match Value New Value
28045000 28045000 28051560
39162010 28045000 28056549
39269000 39162010 39596000
在片1中的所有匹配值是唯一的,而在片材2的匹配值可以具有重複的,因爲它們對應於多個新值。因此,如果工作表1和工作表2中的匹配值相同,那麼我想將工作表1中的匹配值替換爲與匹配值對應的所有新值。在故已被替代後,表1應該是這樣的:
Sheet 1:
Match Value
28051560
28056549
39596000
39269000
所以我們可以看到,28045000是由2個值,28051560和2個獨立的細胞28056549更換,而39162010是由39596000替代,而39269000在表2中沒有匹配值,保持不變。
我通常會手動執行此操作,但大約有30,000行數據,其中一些超過10個值與單個匹配值匹配。我有下面的代碼,但是,這並沒有正確替換所有新值的匹配值。有沒有一種方法可以讓Excel搜索兩張紙的整個範圍並自動進行適當的更改?
Sub multiFindNReplace()
Dim myList, myRange
Set myList = Sheets("sheet 1").Range("A1:A5000")
Set myRange = Sheets("sheet2").Range("A1:A5000")
For Each cel In myList.Columns(1).Cells
myRange.Replace what:=cel.Value, replacement:=cel.Offset(0, 1).Value
Next cel
End Sub
必須在應用VBA這個? – pnuts
@pnuts沒有不一定,有沒有不同的方式來做到這一點,你可以建議? – mike
@pnuts可以詳細闡述一下更多細節中的匹配部分嗎? – mike