【问题标题】:Using a variable of Type Range in VLookup in VBA在 VBA 的 VLookup 中使用范围类型的变量
【发布时间】:2015-08-11 02:47:39
【问题描述】:

我正在尝试使用 VLookup 动态填充一系列单元格。我的活动工作表是我试图在同一工作簿中插入另一个工作表中的单元格值的地方。对于 VLookup 的第二个参数,我尝试使用变量 dataRng,它可以让我在源工作表 (srcSheet) 中查找整个值范围。所有代码都按预期工作,除了 VLookup 返回 #NAME?及其似乎是问题的 dataRng 变量。有什么建议吗?

Sub VlookUpCreateDate()
    Dim srcSheetName As String
    Dim currSheetName As String
    Dim currlastRow As Long
    Dim currlastCol As Long
    Dim srcLastRow As Long
    Dim srcLastCol As Long
    Dim srcFirstRow As Long
    Dim srcSheet As Worksheet
    Dim firstVar As String

    Dim refRng As Range, ref As Range, dataRng As Range

    srcSheetName = ActiveWorkbook.Worksheets(1).Name
    Set srcSheet = ActiveWorkbook.Sheets(srcSheetName)

    'Get Last Row and Column
    With ActiveSheet
        currlastRow = ActiveSheet.UsedRange.Rows.Count
        currlastCol = ActiveSheet.UsedRange.Columns.Count
    End With

    With srcSheet
        srcFirstRow = 2
        srcLastRow = srcSheet.UsedRange.Rows.Count
        srcLastCol = srcSheet.UsedRange.Columns.Count
    End With

    Set dataRng = srcSheet.Range(srcSheet.Cells(srcFirstRow, srcLastCol),  srcSheet.Cells(srcLastRow, srcLastCol))

    For i = 2 To currlastRow
        Cells(i, currlastCol + 1).Select
ConvertToLetter & "$" & srcLastRow
        ActiveCell.Formula = "=VLOOKUP(A2,dataRng,4,False)"
    Next i

End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这里有一个简单的例子,应该适合你,使用公式中的 dataRng 地址

       Dim dataRng As Range, s
        Set dataRng = Range("AA1:AF7")
        s = dataRng.Address
    
        ActiveCell = "=VLOOKUP(A2," & s & ",4,0)"
    

    【讨论】:

    • 谢谢。那工作得很好。我只需要在 s 之前添加对另一个工作表的引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    相关资源
    最近更新 更多