Vlookup Range使用工作表中的最后一个值

时间:2015-08-04 20:08:41

标签: excel vba vlookup

我想使用范围来查找具有每个工作表的最后一行值的已定义变量,但它不会返回任何内容

    For N2 = 1 To 15
    Dim cell3 As String
    cell3 = Range("B3").End(xlDown).Value
    Range("C3").End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Formula = "=VLOOKUP(cell3,'" & N2 & "'!$B$4:$AH$35,MATCH(C3,'" & N2 & "'!$B$3:$AH$3,0),FALSE)"
    Next N2

由于

1 个答案:

答案 0 :(得分:0)

您正在选择多个单元格,但只将公式放入该选择的ActiveCell property中。选择可以是从1到整个工作表的任意数量的调用,但在该选择中始终只有1个活动单元格。

Dim n2 As Long, cell3 As Variant

With ActiveSheet
    For n2 = 1 To 15
        cell3 = .Range("B3").End(xlDown).Value
        With .Range(.Cells(3, 3), .Cells(3, 3).End(xlDown))
            .Formula = _
                "=VLOOKUP(" & chr(34) & cell3 & chr(34) & ", '" & n2 & "'!$B$4:$AH$35, MATCH(C3,'" & n2 & "'!$B$3:$AH$3, 0), FALSE)"
        End With
    Next n2
End With

就使用n2而言,您的工作表是2,3,4等,还是应该使用n2作为{{返回工作表.Name property 3}}?可能的替代公式是,

            .Formula = _
                "=VLOOKUP(" & chr(34) & cell3 & chr(34) & ", '" & worksheets(n2).name & "'!$B$4:$AH$35, MATCH(C3,'" & worksheets(n2).name & "'!$B$3:$AH$3, 0), FALSE)"

使用n2作为序号索引来检索工作表名称。