Excel VBA: 如何 return 部分匹配
Excel VBA: How to return a partial match
我查看了所有问题,但似乎找不到答案。
我在电子表格中有一个由系统 1 创建的收据 ID 列表。在另一个电子表格中,我也有一个由系统 2 创建的相同收据的列表。
90+% 的信息呈现相同,我可以 运行 使用 worksheetfunction.match 匹配。但是,有一种特定类型的收据(退款和购买)在系统 2 中具有不同的格式。
例如:
系统 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
代码return是一个运行时间错误1004。
有什么方法可以让代码接受双重输入作为匹配项并 return 一个答案?
非常感谢任何帮助。
如果我明白你在匹配什么,你可以使用:
MI = WorksheetFunction.Match("*" & MH & "*", Range("HC:HC"), 0)
我查看了所有问题,但似乎找不到答案。
我在电子表格中有一个由系统 1 创建的收据 ID 列表。在另一个电子表格中,我也有一个由系统 2 创建的相同收据的列表。
90+% 的信息呈现相同,我可以 运行 使用 worksheetfunction.match 匹配。但是,有一种特定类型的收据(退款和购买)在系统 2 中具有不同的格式。
例如:
系统 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
代码return是一个运行时间错误1004。
有什么方法可以让代码接受双重输入作为匹配项并 return 一个答案?
非常感谢任何帮助。
如果我明白你在匹配什么,你可以使用:
MI = WorksheetFunction.Match("*" & MH & "*", Range("HC:HC"), 0)