删除 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

If Statements

或使用 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