首页 文章

具有更改范围的自动填充/填充公式

提问于
浏览
0

我是VBA的新手,可以使用Autofill / Filldown功能大大提高帮助 .

我正在设置一个宏,将Vlookup公式合并到新工作表的第一个空列的单元格中 .

这适用于第一个单元格,但我无法使用自动填充/填充功能将公式复制到电子表格中的所有单元格(或至少到行450),因为我不知道如何执行此操作没有定义范围 . 我不能定义范围,因为它每次都会变化..

ActiveSheet.Range("IV1").End(xlToLeft).Offset(, 1).Formula = "=VLOOKUP(B2,Plate.xlsm!$R$3:$S$10,2,FALSE)"

请帮忙!

2 回答

  • 0

    或者你可以像这样直接做到:

    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
    
  • 0

    这应该做你想要的 . 它将在第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
    

相关问题