簡體   English   中英

使用宏的Excel中的VLookup函數范圍

[英]VLookup function range in Excel using macro

我正在嘗試制作一個宏以在Excel中執行vlookup。 我已經創建成功,代碼運行正常! 代碼如下:

ActiveCell.FormulaR1C1 = _ "=VLOOKUP(RC[-1],LW0640!R2C8:R12163C9,2,TRUE)" Selection.AutoFill Destination:=Range("D6:D6098")

但是,我發現范圍是固定范圍。 其結果來自D6:D6098,源來自R2C8:R12163C9。

如果數據范圍更改,它將不起作用。 我想知道如何從范圍的開頭到最后一行為vlookup函數設置范圍。 請幫忙!

您可以使用“ A1”類型的表示法。 對於您的情況,您需要第8列和第9列,分別為H和I,因此您可以編寫以下內容:

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],LW0640!H:I" & MyCols & ",2,TRUE)"
Selection.AutoFill Destination:=Range("D6:D6098")

您可以使用此代碼。

Sheets("LW0640").Select
Range("D6:D6098").Select
    ActiveWorkbook.Names.Add Name:="tablex", RefersToR1C1:= _
        "=LW0640!R6C4:R6098C4"


'Range("F28").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],tablex,2,TRUE)"

嘗試

Sub Demo()
    Dim ws As Worksheet
    Dim LastRow As Long

    Set ws = ThisWorkbook.Sheets("Sheet1")  'change Sheet1 to your data sheet
    With ws
        LastRow = .Range("H" & .Rows.Count).End(xlUp).Row
        .Range("D6:D" & LastRow).Formula = "=VLOOKUP(C6,LW0640!$H$2:$I$" & LastRow & ",2,TRUE)"
    End With
End Sub

您應該避免使用SELECTACTIVE 請參閱了解詳情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM