我在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。
如何在最左边的列为空时修改此代码?
谢谢,
韦恩
答案 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