【问题标题】:Excel VBA select range at last row and columnExcel VBA在最后一行和最后一列选择范围
【发布时间】:2013-09-23 05:37:33
【问题描述】:

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

例如我想从我的电子表格中选择 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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这是你正在尝试的吗?我已经对代码进行了注释,以便您理解它不会有任何问题。

    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
    

    顺便说一句,我假设 LastRow 对于所有行都是相同的,对于列也是如此。如果不是这种情况,那么您将使用.Find 来查找最后一行和最后一列。你可能想看看THIS

    【讨论】:

    • 我将 Selection.Delete Shift:=xlUp 放在 With rng 代码块中,但它不会删除选择
    • 不会;) 在调试语句之后尝试.Delete Shift:=xlUp
    • 您能否发布您在上述问题中使用的确切代码?我刚刚测试了它,它可以工作。
    • 我将确切的代码复制到了我的模块中,但它只删除了 A 列
    • 我也尝试将设置范围更改为range(Cells(myRow, myCol), Cells(myRow, myCol))
    【解决方案2】:

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

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

    可以简化为:

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

    【讨论】:

      【解决方案3】:

      另一种简单的方法:

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

      或更简单:

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

      【讨论】:

        猜你喜欢
        • 2016-10-10
        • 2023-03-12
        • 2017-10-28
        • 2017-02-14
        • 2019-08-05
        • 1970-01-01
        • 2018-08-01
        • 1970-01-01
        • 2012-06-01
        相关资源
        最近更新 更多