我已经在宏中转换了Vlookup公式,以避免使用公式内容填充单元格。以下代码仅适用于具有固定数字的表:
Sub NumberVLookup()
Dim num As Long
num = 4
Set shData = Sheet2
Dim sRes As Variant
sRes = Application.VLookup( _
num, shData.Range("A1:B6"), 2, True)
Debug.Print sRes
Sheet2.Range("C4") = sRes
End Sub
相反,我想创建一个代码,为我提供更多的灵活性 它使用VLookup函数返回其文本值。 例如,我希望所有数字都包含在以下范围内: 0-9返回文本值红色 10-15返回文本值黄色 16-20返回文本值绿色
我所指的表格如下:
A B
1 0-9 Red
2 10-15 Yellow
3 16-20 Green
例如,如果值为4,则VLookup宏将返回文本值"红色"。 我希望这个问题足够明确。非常感谢
答案 0 :(得分:0)
您可以使用范围与非完全匹配。
将数据设置为三列,左侧的范围按升序排列。
然后使用
=VLOOKUP(A7,$A$2:$C$4,3,TRUE)
假设您的数据是这样的:
所以对于VBA(根据需要调整):
Application.VLookup(num, shData.Range("$A$2:$C$4"), 3, True)
编辑:或者您可以关注@ nutsch的好建议!
答案 1 :(得分:0)
Sub NumberVLookup()
Dim num As Long
num = 16
Dim sRes As Variant
sRes = Application.VLookup( _
num, Sheet2.Range("A56:B58"), 2, True)
Debug.Print sRes
Sheet2.Range("J15") = sRes
End Sub