1

Можете ли вы предложить какие-либо методы, при которых всякий раз, когда я удаляю данные в определенной ячейке, все другие данные вдоль ее строки будут автоматически удаляться?

Я уже исследовал это, и я придумал, как использовать Visual Basic для приложения, удалите пустые строки 2, но я не знаю, как его использовать. Может ли кто-нибудь научить меня, как использовать код, который я упомянул?

1 ответ1

2

В Excel нет события VBA для удаления ячейки.

Вы можете использовать событие Worksheet_Change. Это событие будет срабатывать при каждом изменении ячейки на листе. Если после изменения ячейка пуста, это означает, что пользователь только что удалил ячейку или нажал клавишу ввода после редактирования ячейки, которая уже была пустой, без записи чего-либо в ячейку.

Событие изменения может быть настроено для отслеживания только определенного диапазона, скажем, столбцов от A до F, и удалит строку, только если ячейка в этих столбцах пуста после изменения.

С этим преамбулой, вот код, который делает то, что я описываю.

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A:F")) Is Nothing Then
    If Len(Trim(Target.Value)) = 0 Then
        MsgBox "Cell was deleted - now deleting row" ' remove this line if you dont want the message
        Application.EnableEvents = False ' turn off event monitoring so the routine does not loop
        Selection.EntireRow.Delete
        Application.EnableEvents = True ' turn on event monitoring
    End If
End If

End Sub

Скопируйте этот код. Затем щелкните правой кнопкой мыши вкладку листа, выберите "Просмотреть код" в контекстном меню и вставьте код в окно кода. Не забудьте сохранить файл как файл .xlsm с поддержкой макросов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .