首页 > 解决方案 > 如何删除表中具有值的最后一行

问题描述

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

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

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

在此处输入图像描述

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

标签: excelvba

解决方案


假设您的“表格”是 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语句旨在防止表没有数据(在其标题下)时出现错误。


推荐阅读