Как удалить последнюю строку со значением в таблице - PullRequest
0 голосов
/ 10 марта 2019

Что я хочу сделать, это разрешить пользователю удалять последнюю строку данных в определенной таблице. Когда пользователь делает это, если он снова нажимает командную кнопку, то следующая строка данных выше также удаляется и так далее, пока этот процесс не остановится на заголовке.

Таким образом, на показанном изображении в настоящее время есть 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] - процесс продолжается до остановки в заголовках.

введите описание изображения здесь

Любая помощь будет оценена, спасибо

1 Ответ

1 голос
/ 10 марта 2019

Предполагая, что ваша "таблица" является таблицей 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 предназначена для предотвращения ошибок, когда в таблице нет данных (ниже ее заголовков).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...