Excel'in hücre silme için bir VBA olayı yoktur.
Bir Worksheet_Change olayı kullanabilirsiniz. Bu olay, sayfadaki bir hücre değiştiğinde tetiklenir. Değişiklikten sonra, hücre boşsa, kullanıcının henüz bir hücreyi silmesinin veya hücreye herhangi bir şey yazmadan zaten boş olan bir hücreyi düzenledikten sonra bir hücreyi silmesinin veya girmemesinin nedeni olabilir.
Change olayı, yalnızca belirli bir aralığı (örneğin, A'dan F'ye kadar olan sütunlar) izlemek üzere ayarlanmış olabilir ve yalnızca bu sütunlardaki bir hücre bir değişiklikten sonra boşsa satırı siler.
Ön-amble olarak bu, benim tarif ettiğim şeyi yapan bir kod.
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
Bu kodu kopyalayın. Ardından, sayfa sekmesini sağ tıklayın, içerik menüsünden "Kodu Görüntüle" yi seçin ve kodu kod penceresine yapıştırın. Dosyayı makro etkin bir .xlsm dosyası olarak kaydetmeyi unutmayın.