簡體   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