我是VBA的新手,在使用Autofill/Filldown函数时可能需要一些帮助。
我正在设置一个宏,以便将Vlookup公式合并到新工作表的第一个空列的单元格中。
这对第一个单元格很有效,但我在使用自动填充/填充向下函数将公式复制到电子表格中的所有单元格(或至少到第450行)时遇到了问题,因为如果不定义范围,我不知道如何做到这一点。我不能定义范围,因为它每次都会有所不同。
ActiveSheet.Range("IV1").End(xlToLeft).Offset(, 1).Formula = "=VLOOKUP(B2,Plate.xlsm!$R$3:$S$10,2,FALSE)"
请帮帮我!
发布于 2015-01-14 03:17:46
或者你可以直接这样做:
With ActiveSheet
Dim FirstEmpCol As Long, LastRow As Long
FirstEmpCol = .Cells(1, .Columns.Count).End(xlToLeft).Offset(0, 1).Column
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
.Range(.Cells(2, FirstEmpCol), .Cells(LastRow, FirstEmpCol).Formula = _
"=VLOOKUP(B2,Plate.xlsm!$R$3:$S$10,2,FALSE)"
End With
发布于 2015-01-13 17:55:21
这应该能做你想要的事情。它将找到第2行中的第一个空列,在那里插入公式,然后使用列B将其复制到最后一行,以检查最后使用的行(因为这是VLookUp
正在查看的列:
Sub TesterIt()
Dim LastRow As Long, StartCell As Range
Set StartCell = ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Offset(0, 1)
StartCell.Formula = "=VLOOKUP(B2,Plate.xlsm!$R$3:$S$10,2,FALSE)"
LastRow = Range("B" & Rows.Count).End(xlUp).Row
Range(StartCell, Cells(LastRow, StartCell.Column)).FillDown
End Sub
https://stackoverflow.com/questions/27928234
复制