繁体   English   中英

VBA 中的 VLOOKUP 宏

[英]VLOOKUP macro in VBA

我需要有关 vlookup 的宏脚本的帮助。 我想在 vlookup 脚本中硬编码表数组的信息。 现在的问题是,当我为 vlookup 函数添加一行时,它仅适用于最后一行,尽管所有行实际上都是来自数组表的信息。

我需要这方面的帮助,以确保如果宏运行,它将开始运行第一行宏并在第一行没有匹配时转到第二行。 第三行也一样。 提前致谢。

Sub Macro7()

    Range("L1").Select

    Range("L1").FormulaR1C1 = "=VLOOKUP(RC[-1],{1603101,""BFF""},2,FALSE)"
    Range("L1").FormulaR1C1 = "=VLOOKUP(RC[-1],{1603102,""DELTA""},2,FALSE)"
    Range("L1").FormulaR1C1 = "=VLOOKUP(RC[-1],{1608063,""BIST""},2,FALSE)"

    Lastrow = ActiveSheet.UsedRange.Rows.Count

    Range("L1").Autofill Destination:=Range("L1:L" & Lastrow)

End Sub

尝试这个:

Sub Macro7()
    With ActiveSheet
        .Range("L1:L" & .UsedRange.Rows.Count).FormulaR1C1 = "=VLOOKUP(RC[-1],{1603101,""BFF"";1603102,""DELTA"";1608063,""BIST""},2,FALSE)"
    End With
End Sub

如果您愿意让 VBA 代码自己进行计算而不是创建公式,则可以使用类似以下代码的内容。 (通过公式进行的优点是每次数据更改时都会更新,而无需再次调用宏。)

Sub Macro7()
    Dim r As Long
    Dim v as String
    With ActiveSheet
        For r = 1 to Range("K" & .Rows.Count).End(xlUp).Row
            Select Case .Cells(r, "K").Value
                Case 1603101: v = "BFF"
                Case 1603102: v = "DELTA"
                Case 1608063: v = "BIST"
                Case Else:    v = "UNKNOWN!!"
            End Select
            .Cells(r, "L").Value = v
        Next
    End With
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM