EXCEL /宏如何查找最后一行

时间:2019-09-03 17:52:16

标签: excel vba

我用记录器创建了这个小宏...现在,我只需要它可以处理可变数量的行(而不是我的20000作弊行)。

是否有提示或技巧可以告诉此代码在最后一行停止?

 Columns("K:K").Select
 Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
 Range("K1").Select
 ActiveCell.FormulaR1C1 = "Total"
 Range("K2").Select
 ActiveCell.FormulaR1C1 = "=TEXT(RC[-2]-RC[-3]-RC[-1],""h:mm"")"
 Range("K2").Select
 Selection.AutoFill Destination:=Range("K2:K20000")
 Range("K2:K20000").Select

谢谢

3 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情。

Sub LastRow()

    Dim sht As Worksheet
    Dim LastRow As Long


    Set sht = ActiveSheet
    LastRow = sht.Cells(sht.Rows.Count, "K").End(xlUp).Row


End Sub

答案 1 :(得分:0)

由于您要填写K列,因此我假设该列在单元格K2下为空。另一列可能有数据,您想填充到该另一列的最后一行数据。

为此,您可以确定另一列的最后一行,在我的示例中为A列,但是您可以更改它。然后将变量lastRow插入您的自动填充语句。

Dim sht As Worksheet
Dim lastRow As Long

Set sht = ActiveSheet

lastRow = sht.Cells(Rows.Count, "A").End(xlUp).Row

sht.Range("K1").FormulaR1C1 = "Total"
sht.Range("K2").FormulaR1C1 = "=TEXT(RC[-2]-RC[-3]-RC[-1],""h:mm"")"
sht.Range("K2").AutoFill Destination:=sht.Range("K2:K" & lastRow)

答案 2 :(得分:-1)

假设您在A列中有最后一行:

 Columns("K:K").Select
 Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
 Range("K1").Select
 ActiveCell.FormulaR1C1 = "Total"
 Range("K2").Select
 ActiveCell.FormulaR1C1 = "=TEXT(RC[-2]-RC[-3]-RC[-1],""h:mm"")"
 Range("K2").Select
 LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
 Selection.AutoFill Destination:=Range("K2:K" & LastRow)
 Range("K2:K" & LastRow).Select