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)