Я заполнил пользовательскую форму из четырех столбцов, следуя советам VBA Excel Заполнить ListBox несколькими столбцами .
Теперь я хочу, чтобы мои пользователи могли удалять любые строку, а содержимое в новом списке можно переместить обратно на лист Excel, используя те же столбцы.
РЕДАКТИРОВАТЬ: полный список элементов может быть любым, от одной строки до десятков линий. В качестве примера того, как работает мой код: при условии, что из списка из 5 строк строка номер 3 удалена пользователем. В этом случае все записи до удаленной точки восстанавливаются до правильного диапазона (поэтому строки 1 и 2 верны). Строки 4 и ниже не восстанавливаются.
Есть ли способ получить все оставшиеся строки для заполнения в Excel?
Пользователи могут удалить целые строки из этого кода:
Private Sub Remove_Click()
Dim i as Integer
For i = Me.ListBox1.ListCount - 1 To 0 Step -1
If Me.ListBox1.Selected(i) = True Then
Me.ListBox1.RemoveItem i
Exit For
End If
Next
End Sub
Код, который я использую для повторного заполнения таблицы Excel, находится здесь. Сообщения об ошибках не отображаются. Как будто код думает, что готов.
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim rng As Range
Dim MyArray
Dim x As Long
Set ws = Sheets("EnteredData")
Set rng = ws.Range("M3:P" & ws.Range("M" & ws.Rows.Count).End(xlUp).Row)
rng.Clear
MyArray = Me.ListBox1.List
x = Me.ListBox1.ListCount - 1
ws.Range("M3:P" & x).Value = MyArray
End Sub
Я очень признателен за любую помощь в решении этой проблемы. Спасибо