【发布时间】:2018-07-06 04:31:48
【问题描述】:
我想制作一个 vlookup 宏,将 vlookup 公式应用于整个列。
我被困在Range("K3").Formula = MyStringVar1 这一行,因为这仅适用于单元格 K3。将不胜感激任何帮助:)
Sub vlookDemo()
Dim MyStringVar1 As Variant
Dim LastRow As Long
LastRow = Range("C" & Rows.Count).End(xlUp).Row
On Error Resume Next
MyStringVar1 = Application.WorksheetFunction.VLookup(Range("D3:D" & LastRow), _
Worksheets("ProductList").Range("A4:B294"), 2, False)
On Error GoTo 0
If IsEmpty(MyStringVar1) Then
""
End If
Range("K3").Formula = MyStringVar1
End Sub
【问题讨论】:
-
Vlookup 使用单个值进行查找。你有 Range("D3:D" & LastRow) ?
-
我对 VBA 方面很陌生,所以我不确定它是否被允许。该代码是收集我所理解的结果,所以我可能在 vlookup 语句上也错了..
-
您是否尝试将查找公式应用于 Range("K3:K" & LastRow) ?第一个公式应该是 Application.WorksheetFunction.VLookup(Range("D3"), _ Worksheets("ProductList").Range("$A$4:$B$294"), 2, False) /?
-
@Hwee7 -
On Error Resume Next并非旨在隐藏您不知道如何修复的错误,也不是一个好主意,尤其是在学习 VBA 时。我建议删除它,并在故意引发错误的情况下使用它。 -
@QHarr,查找公式到 Range("K3:K" & LastRow) >> 是 Application.WorksheetFunction.VLookup(Range("D3"), _ Worksheets("ProductList").Range( "$A$4:$B$294"), 2, 假) ? >> 这似乎更正确,因为我需要修复范围以使其不会“运行”?