删除 Table 的最后一行/防止 Header 删除
Deleting Last Row of Table / Prevent Header Deletion
我有以下分配给按钮的代码。按下时,该按钮将删除 table 中的最后一行。 table 的第一行是 header。我正在尝试弄清楚如何 prevent/protect header (B6:M6) 及其上方的行在 "delete row" 按钮被点击太多次时不被意外删除。任何帮助将非常感激。谢谢。
Sub DeleteRow()
Dim LastRow As Integer
LastRow = Worksheets("MTO").Range("J" & Rows.count).End(xlUp).Row
Worksheets("MTO").Rows(LastRow & ":" & LastRow).Delete shift:=xlUp
End Sub
在删除前使用 If
语句检查 LastRow 的值。 (此外,您还需要使用 Sheet)
来完全限定您的对象
Sub DeleteRow()
Dim LastRow As Long
LastRow = Worksheets("MTO").Range("J" & Worksheets("MTO").Rows.count).End(xlUp).Row
If LastRow > 6 Then
Worksheets("MTO").Rows(LastRow & ":" & LastRow).Delete shift:=xlUp
End If
End Sub
或使用 With
简化它
Sub DeleteRow()
Dim LastRow As Long
With Worksheets("MTO")
LastRow = .Range("J" & .Rows.count).End(xlUp).Row
If LastRow > 6 Then
.Rows(LastRow & ":" & LastRow).Delete shift:=xlUp
End If
End With
End Sub
最好声明工作表变量以使代码更具可读性。
您可以尝试这样的操作...
Sub DeleteRow()
Dim ws As Worksheet
Dim LastRow As Integer
Set ws = Worksheets("MTO")
LastRow = ws.Range("J" & Rows.Count).End(xlUp).Row
If LastRow > 6 Then ws.Rows(LastRow).Delete
End Sub
我有以下分配给按钮的代码。按下时,该按钮将删除 table 中的最后一行。 table 的第一行是 header。我正在尝试弄清楚如何 prevent/protect header (B6:M6) 及其上方的行在 "delete row" 按钮被点击太多次时不被意外删除。任何帮助将非常感激。谢谢。
Sub DeleteRow()
Dim LastRow As Integer
LastRow = Worksheets("MTO").Range("J" & Rows.count).End(xlUp).Row
Worksheets("MTO").Rows(LastRow & ":" & LastRow).Delete shift:=xlUp
End Sub
在删除前使用 If
语句检查 LastRow 的值。 (此外,您还需要使用 Sheet)
Sub DeleteRow()
Dim LastRow As Long
LastRow = Worksheets("MTO").Range("J" & Worksheets("MTO").Rows.count).End(xlUp).Row
If LastRow > 6 Then
Worksheets("MTO").Rows(LastRow & ":" & LastRow).Delete shift:=xlUp
End If
End Sub
或使用 With
Sub DeleteRow()
Dim LastRow As Long
With Worksheets("MTO")
LastRow = .Range("J" & .Rows.count).End(xlUp).Row
If LastRow > 6 Then
.Rows(LastRow & ":" & LastRow).Delete shift:=xlUp
End If
End With
End Sub
最好声明工作表变量以使代码更具可读性。
您可以尝试这样的操作...
Sub DeleteRow()
Dim ws As Worksheet
Dim LastRow As Integer
Set ws = Worksheets("MTO")
LastRow = ws.Range("J" & Rows.Count).End(xlUp).Row
If LastRow > 6 Then ws.Rows(LastRow).Delete
End Sub