У меня есть лист с формой, который либо загружается пустым, если выбрана новая строка, либо заполняется автоматически с использованием свойства .Tag, если выбрана заполненная строка. Запись (если новая) автоматически добавляется в следующую строку листа.
Я попытался добавить кнопку удаления строки («DelButt»), если кто-то хочет удалить запись. В идеале, после удаления строки данные переформатируются в таблицу для сохранения цветового рисунка, а затем возвращаются в диапазон.
Удаляет выбранную строку:
Private Sub DelButt_Click()
With Me
Cells(.Tag, 1).EntireRow.Delete
End With
Unload NewItemForm
Поскольку форма создается автоматически при нажатии на ячейку, я отключаю события, чтобы диапазон можно было отформатировать.
Application.EnableEvents = False
l = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Set Rng = ActiveSheet.Range("A1:Z" & l)
Set Table = ActiveSheet.ListObjects.Add(xlSrcRange, Rng, xlYes)
Table.TableStyle = "TableStyleMedium8"
ActiveSheet.ListObjects("Table1").Unlist
Application.EnableEvents = True
End Sub
Строка удалена, но диапазон неправильно переформатирован. Что-то не так с моим кодом или я поступаю неправильно?