删除表的最后一行/防止标题删除

时间:2018-01-24 14:06:24

标签: excel vba delete-row

我有以下代码分配给一个按钮。按下时,该按钮将删除表格中的最后一行。表格的第一行是标题。我试图找出如何防止/保护标题(B6:M6)及其上方的行被意外删除,如果"删除行"单击按钮太多次了。任何帮助将非常感激。谢谢。

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

2 个答案:

答案 0 :(得分:0)

在删除之前使用If语句检查LastRow的值。 (另外,您需要使用工作表完全限定对象)

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

答案 1 :(得分:0)

声明工作表变量以使代码更具可读性总是更好。

您可以尝试这样的事情......

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