我正在尝试创建一个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
答案 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