我已经查看了问题,似乎无法找到答案。
我在电子表格中有一个收据ID列表,由系统1创建。在另一个电子表格中,我还有一个由系统2创建的相同收据列表。
90%以上的信息显示相同,我可以使用worksheetfunction.match运行匹配。但是,有一种特殊类型的收据(退款和购买)在系统2中具有不同的格式。
一个例子是:
系统1:
系统2:
我使用的代码是:
While MC > MD
Worksheets("ID sheet").Activate ' activate ID sheet
MF = WorksheetFunction.VLookup(MD, Range("U2:W" & Range("U1")), 2, False) ' Vlookup for System 1 letters
MG = WorksheetFunction.VLookup(MD, Range("U2:W" & Range("U1")), 3, False) ' Vlookup for System 1 numbers
MH = MF & MG ' combine GFAS and Fund IDs
Worksheets("System 1").Activate ' Activate System 1 screen
MI = WorksheetFunction.Match(MH, Range("HC:HC"), 0) ' Match combined letters and numbers for System 1
MK = Range("A" & MI) ' Find deal ID
Worksheets("System 2").Activate ' Activate System 2 screen
ML = WorksheetFunction.Match(MK, Range("W:W"), 0) ' Match deal ID in Range W
MM = Range("F" & ML) ' Find Register ID
MD = MD + 1
Wend
代码返回运行时错误1004。
有什么方法可以让代码接受双项作为匹配并返回答案?
感谢任何帮助。
答案 0 :(得分:2)
如果我已经理解了你所匹配的内容,你可以使用:
MI = WorksheetFunction.Match("*" & MH & "*", Range("HC:HC"), 0)