Excel VBA选择最后一行和列的范围

时间:2013-09-23 05:37:33

标签: excel vba excel-vba

我正在尝试创建一个macro来选择最后一行和最后一列的范围。

E.g。我想从电子表格中选择1,2,3,4,然后删除选择。

数据:

John  | 10 | 10 | 10
Smith | 5  | 5  | 5
Fred  | 8  | 8  | 8 
1     | 2  | 3  | 4

这是我的代码,它只选择A列的最后一行。 (选择1并删除它)。我需要它来选择1到4并删除整行。

Range("A" & Rows.Count).End(xlUp).Select
Selection.Delete Shift:=xlUp

3 个答案:

答案 0 :(得分:13)

这是你在尝试什么?我已对代码进行了评论,以便您在理解代码时不会遇到任何问题。

Sub Sample()
    Dim ws As Worksheet
    Dim lRow As Long, lCol As Long
    Dim rng As Range

    '~~> Set this to the relevant worksheet
    Set ws = [Sheet1]

    With ws
        '~~> Get the last row and last column
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row
        lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column

        '~~> Set the range
        Set rng = .Range(.Cells(lRow, 1), .Cells(lRow, lCol))

        With rng
            Debug.Print .Address
            '
            '~~> What ever you want to do with the address
            '
        End With
    End With
End Sub

BTW我假设LastRow对于所有行都是相同的,并且列相同。如果不是这种情况,那么您将使用.Find来查找最后一行和最后一列。您可能希望看到THIS

答案 1 :(得分:4)

最简单的修改(对你问题中的代码)是:

    Range("A" & Rows.Count).End(xlUp).Select
    Selection.EntireRow.Delete

可以简化为:

    Range("A" & Rows.Count).End(xlUp).EntireRow.Delete

答案 2 :(得分:0)

另一种简单方法:

ActiveSheet.Rows(ActiveSheet.UsedRange.Rows.Count+1).Select    
Selection.EntireRow.Delete

或更简单:

ActiveSheet.Rows(ActiveSheet.UsedRange.Rows.Count+1).EntireRow.Delete