在VBA中的VLookup中使用Type Range变量

时间:2015-08-10 18:22:12

标签: excel-vba vba excel

我正在尝试使用VLookup动态填充一系列单元格。 My Active Sheet是我试图从同一工作簿中的另一个工作表插入单元格值的地方。对于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

1 个答案:

答案 0 :(得分:0)

这是一个应该适合您的简单示例,使用公式

中的dataRng地址
   Dim dataRng As Range, s
    Set dataRng = Range("AA1:AF7")
    s = dataRng.Address

    ActiveCell = "=VLOOKUP(A2," & s & ",4,0)"