自动填充直到最后一行

时间:2014-06-20 18:08:37

标签: vba excel-vba excel

我一直在自动填充使用Q10:Q57范围的报告。但是,我意识到,由于它每天运行,因此范围很可能会更高或更低。我目前有

Range("Q10").Select
Selection.AutoFill Destination:=Range("Q10:Q57"), Type:=xlFillDefault
Range("Q10:Q57").Select
Calculate

有没有办法自动填充直到最后一行而不是Q57?我在考虑使用excel吗?你的想法是什么?感谢。

2 个答案:

答案 0 :(得分:0)

创建一个函数来查找最后一行:

Public Function GetLastRow(ByVal rngToCheck As Excel.Range) As Long

Dim rngLast As Excel.Range

rngLast = rngToCheck.Find(What:="*", SearchOrder:=Excel.XlSearchOrder.xlByRows, SearchDirection:=Excel.XlSearchDirection.xlPrevious)

    If rngLast Is Nothing Then
        GetLastRow = rngToCheck.Rows.Count
    Else
        GetLastRow = rngLast.Rows.Count
    End If

End Function

现在创建一个调用函数

的过程
Sub findAndFillLastRow()

  Dim yourSheet As Excel.Worksheet

   With yourSheet
        lngLr = .Cells.Find(What:="*", SearchDirection:=Excel.XlSearchDirection.xlPrevious, SearchOrder:=Excel.XlSearchOrder.xlByRows).Row

        .Range("Q10:Q").AutoFill(.Range("Q10:Q" & lngLr), Excel.XlAutoFillType.xlFillDefault)

    End With

End Sub

那应该是工作。

答案 1 :(得分:0)

试一试

Dim rng_AutoFill As Range
Set rng_AutoFill = Range( _
                    Range("Q10"), _
                    Range("Q1000000").End(xlUp))
Range("Q10").AutoFill _
    Destination:=rng_AutoFill, _
    Type:=xlFillDefault
Calculate