Excel VBA:如何返回部分匹配
我已经看过这些问题,似乎无法find答案。
我在电子表格中有系统1创build的收据ID列表。在另一个电子表格中,我也有一个由系统2创build的相同收据的列表。
90%以上的信息呈现相同,我可以使用worksheetfunction.match运行匹配。 但是,在系统2中有一种具有不同格式的特定types的收据(退款和购买)。
一个例子是:
系统1:
- AAAA0000001
- AAAA0000002
- AAAA0000003
- AAAA0000004
- ….
- ZZZZ9999999
系统2:
- AAAA0000001
- AAAA0000002
- AAAA0000003 / AAAA000004 – 这将是一个退款和购买
- AAAA0000005
- ….
- ZZZZ9999999
我使用的代码是:
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。
有没有什么办法可以让我的代码接受双重input作为匹配,并返回一个答案?
感激不尽的帮助。
如果我已经理解了你所匹配的内容,你可以使用:
MI = WorksheetFunction.Match("*" & MH & "*", Range("HC:HC"), 0)