VBA. Userform.ListBox - ошибка вылета Excel и "Out of memory", Урок курса VBA, в котором автор через Userform удаляет записи из умной таблицы, что приводит к вылету всего Excel
Сразу технические характеристики системы: i7, SSD, 24 Гб ОЗУ, WIN 10 x64, Office 365 x64, Excel версия 2204 Сборка 16.0.15128.20210.
Обучаюсь курсу VBA, где автор создает через Userform "FmInputMaster" добавление записи в умную таблицу на листе Masterdata, и затем удаление выбранной записи удалением строки из умной таблицы с того же листа через Userform "FmViewMaster" commandbutton "Delete Record".
Уже во время просмотра видео сам автор делает указание, что в конечной версии файла он отказался от этой кнопки и её кода "Delete Record" из-за возникающей ошибки.
И действительно в какой момент вроде всё работает: запись добавляется, удаляется и на какой-то раз удаления (порой уже на 3-4й), возникает ошибка:
Попробуйте так (добавил 1 строку с русским описанием) - таблица в Listbox не обновлялась после удаления, т.е. с листа данные удалялись, а в ListBox нет
Код
Private Sub btDelete_Click()
Dim DeleteRec As Long
Dim CheckDelete As VbMsgBoxResult
DeleteRec = Me.LbEditCuct.ListIndex
If DeleteRec = -1 Then
MsgBox "No record has been selected for deletion", vbExclamation, "Delete Record?"
Exit Sub
Else
CheckDelete = MsgBox("Are you sure you want to delere this record from the Master Data?", _
vbExclamation + vbYesNo + vbDefaultButton1, "Delete Record?")
If CheckDelete = vbNo Then Exit Sub
DeleteRec = DeleteRec + 1
shMaster.ListObjects("CustomerTable").ListRows(DeleteRec).Delete
'обновляем таблицу в ListBox после удаления
Me.LbEditCuct.RowSource = "CustomerTable"
End If
End Sub
Скрин показывает, что при заполненных полях, нажимаю "ADD", в умную таблицу успевает добавиться строка с заполненным только первым полем. Ошибка. При нажатии на "Debug", подчеркивается указанная строка кода. При попытке сохранить или закрыть файл, Excel вылетает.
Я смотрел только код удаления строки, т.к. вы на неё жаловались. В другую форму я не заходил Объясню так - весь ваш код VBA от курса VBA очень сырой. В него нужно добавить ещё кучу проверок для нормальной работы с умной таблицей. Если коротко - если допилить до ума ваш код, то он будет работать, вам показали небольшой пример работы с таблицей, а дальше, наверное, либо вы сами должны доработать этот код, либо доработка этого кода будет в следующих уроках вашего курса VBA. P.S. Работайте с обычными ячейками на листе, без умной таблицы. Так вам будет проще