自动填充公式以在Excel中结束系列

时间:2018-04-10 10:49:20

标签: excel vba excel-vba

我在excel中遇到一块VBA问题,正在寻求帮助。

我需要一段代码来通过一系列数据自动填充excel中的公式,该系列的长度会有所不同,并且会占据C:I列。

我一直在使用这段代码而没有问题安静一段时间:

Sub Auto_Fill_Formula()
Sheets("Sheet1").Select

Dim LstRow As Long

With Sheets("Sheet1")
     LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
     .Range("A2:A" & LastRow).Formula = "Formula added here"
      Application.CutCopyMode = False

End With

End Sub

然而,当公式被添加到最左边的列时,它只填充第一个单元格,单元格A2。

如何在最左边的列为空时修改此代码?

谢谢,

韦恩

1 个答案:

答案 0 :(得分:2)

你可以使用Find来查找C:I中最后一次使用的行,从第1行向后搜索。你还应该使用Option Explicit来获取变量名称中的拼写错误(LstRow)。

Sub Auto_Fill_Formula()

Sheets("Sheet1").Select

Dim LastRow As Long, r As Range

With Sheets("Sheet1")
     Set r = .Range("C:I").Find(What:="*", After:=.Range("C1"), Lookat:=xlWhole, SearchOrder:=xlByRows, _
                          SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False)
     If Not r Is Nothing Then
        LastRow = r.Row
        .Range("A2:A" & LastRow).Formula = "Formula added here"
      End If
End With

End Sub