【发布时间】:2018-05-23 12:43:04
【问题描述】:
后续问题来自:
VBA - Match Lookup With Multiple Parameters
下面的代码运行良好,但后来我意识到 A 列中的值有时包含前缀,因此不返回任何内容。
希望有人可以编辑实际公式以说明数字前面的 2 个字母前缀。
代码:
Sub PlaceFormula()
Dim ws As Worksheet
Dim lr As Long
Dim lc As Long
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
End With
Set ws = Sheets("Main")
lr = ws.Cells(Rows.Count, 1).End(xlUp).Row
lc = ws.Cells(1, Columns.Count).End(xlToLeft).Column
ws.Range("B2", ws.Cells(lr, lc)).Formula = "=IF(ISNUMBER(MATCH($A2&B$1,INDEX(tStatus[[Employee Number]:[Employee Number]]&tStatus[[Wk Number]:[Wk Number]],),0)),""Match"","""")"
ws.Range("B2", ws.Cells(lr, lc)).Value = ws.Range("B2", ws.Cells(lr, lc)).Value
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
A 列中的数据示例:
12345
24681
78956
AB12345
A78956
如果值存在,表中的数据也将包含前缀。所以本质上,MATCH 正在寻找完全匹配。
链接到示例文件:
https://drive.google.com/file/d/1Uoa0Yn72nSckQaBnl6Y-a2q6UMJX6H3f/view?usp=sharing
【问题讨论】:
-
请展示一些示例数据
-
@Luuklag 在屏幕截图中还是您想要文件链接?
-
只是列中的一些数据,您可以在问题中以文本形式发布
-
所有的前缀都是2个字符吗?
-
@Nathan_Sav 有些可能只有 1 个字符
标签: vba excel excel-formula