У меня есть две пользовательские формы, одна из которых имеет много списков и экспортирует эти данные в другую электронную таблицу. У меня есть вторая пользовательская форма, идентичная первой, однако, когда вы открываете ее, она должна иметь значения каждого списка и текстового поля, автоматически выбираемые из электронной таблицы. Затем, когда вы завершите его, он по существу должен заменить прежнюю позицию. (Пример: если я редактирую план изначально в строке 35, он заменит данные оттуда и заполнит их). Моя проблема заключается в том, что когда я нажимаю кнопку Отправить, если я не коснулся некоторых из этих списков (поскольку нет необходимости их редактировать), значения в таблице исчезают.
Я провел несколько тестов, чтобы выяснить, скрывает ли оно значение или что-то еще, и определил, что это значение списков или "" по какой-то причине, если только я не нажму другое значение или даже то же значение. Мне просто нужно щелкнуть значение внутри списка, чтобы оно появилось в электронной таблице. Я попытался включить функцию Listbox.Select, но безрезультатно, так как я не знал, как по существу «сохранить» данные из предыдущей строки.
Private Sub UserForm_Initialize()
Dim activeRow As Long
activeRow = WorksheetFunction.Match(PlanName_text.Value, Range("B:B"), 0)
'Clear FinalForm_list
FinalForm_list.Clear
'Fill FinalForm_list
With FinalForm_list
.AddItem "2018"
.AddItem "2019"
.AddItem "2020"
.AddItem "2021"
.AddItem "2022"
.AddItem "2023"
End With
'Sets Final Form Year equal to what the spreadsheet says
FinalForm_list.Value = Cells(activeRow, 11).Value
End Sub
Private Sub complete_active_Click() 'complete_active = "done" button
Dim activeRow As Long
activeRow = WorksheetFunction.Match(PlanName_text.Value, Range("B:B"), 0)
Cells(activeRow, 11).Value = FinalForm_list.Value
Unload Me
End Sub
Я действительно просто хочу иметь возможность перейти в эту форму редактирования, когда все значения из электронной таблицы уже выбраны, изменить одно или два значения и оставить остальные в покое, при этом значения в электронной таблице будут такими же, как какими они были и не исчезают.