我想使用范围来查找具有每个工作表的最后一行值的已定义变量,但它不会返回任何内容
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
由于
答案 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
作为序号索引来检索工作表名称。