如何删除表中具有值的最后一行

时间:2019-03-10 12:08:36

标签: excel vba

我想要做的是使用户能够删除特定表中的最后一行数据。当用户这样做时,如果再次单击命令按钮,则上面的下一行数据也将被删除,依此类推,直到此过程在标题处停止。

因此,在所示图像中,当前有6行数据-单元格[分别为P22,Q22和R22]中的最后一行具有数字160、170和180。当用户单击命令按钮时,这些数字将被删除。如果用户然后再次单击命令按钮,则上面的下一行数字(分别为130、140和150 [分别为P21,Q21和R21])将被删除,依此类推。

如果说最初只有3行数据显示在表单上,​​并且用户单击命令按钮,则该行中的最后数字70、80和90 [P19,Q19和R19]将被删除。如果再次单击命令按钮,则会删除上一行40、50和60 [P18,Q18和R18]中的数字-处理继续,直到在标题处停止。

enter image description here

任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:1)

假设您的“表格”是Excel表格(而不仅仅是格式类似于表格的范围),则下面的代码应该可以使用。

我的代码假定您在名为"Table1"的工作表上有一个名为"Sheet1"的表。根据需要进行更改。

Option Explicit

Private Sub DeleteLastRowInTable()
    With ThisWorkbook.Worksheets("Sheet1").ListObjects("Table1")
        If .ListRows.Count > 0 Then
            .DataBodyRange.Rows(.DataBodyRange.Rows.Count).EntireRow.Delete
        End If
    End With
End Sub

If语句旨在防止表没有数据时(在其标头下方)错误。