Excel не предоставляет хороший способ определить, была ли удалена строка или столбец.Один из способов сделать это - использовать определенное имя и событие Calculate.Например, если вы заботитесь о первых 1000 строках, назовите ячейку A1001 как «rngLastRow».Затем используйте этот код в событии вычисления листа
Private Sub Worksheet_Calculate()
If Me.Range("rngLastRow").Row < 1001 Then
MsgBox "Row deleted"
End If
End Sub
Он не скажет вам, какая строка была удалена, поэтому вам понадобится что-то другое, если вам нужно это знать.вы хотите просто запретить людям удалять строки, вы можете использовать формулу массива в скрытом столбце.Опять же, предполагая, что ваше приложение использует первые 1000 строк, выберите A1: A1000 (или какой-либо другой пустой столбец) и введите = 1 и подтвердите его, нажав Control + Enter.Это создаст массив в A1: A1000.Когда пользователь пытается удалить строку, он получит бесполезное сообщение «Вы не можете изменить часть массива.», Но он не сможет удалить строку.