我有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