【发布时间】:2017-08-23 05:45:49
【问题描述】:
下午好,我想通过更改单元格值宏功能 在 Sheet1.Range("I15:I18") 中引入基于 Vlookup 函数的文本值,避免使用公式。这是 Vlookup 函数文本正在查看的表格:
A B
1 0 Low Risk
2 10 Medium Risk
3 15 High Risk
它遵循对我不起作用的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim num As Long
Dim sRes As Variant
Set KeyCells = Sheet1.Range("I15:I18")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
sRes = Application.VLookup(num, Sheet2.Range("A56:B58"), 2, True)
Debug.Print sRes
Sheet1.Target.Offset(0, 1).Text = sRes
End If
End Sub
落在该范围内的实际分数是由另一个可以完美运行的宏触发的。 这里也遵循适用于单个单元格的宏:
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
非常感谢您在这方面的帮助。
【问题讨论】:
-
你没有在
Worksheet.Change代码中定义变量Num -
你应该指定
Range(Target.Address)属于哪个工作表,以避免任何问题。 -
谢谢。例如,我该如何定义 num?
-
工作表为 sheet1。之后你认为代码会运行吗?
-
在第二个过程中设置
Num=16。Num在第一个过程中没有任何价值。