Мне пришлось сделать именно это, и решение похоже на Skin - просто сохраните значения в вашей форме на отдельном (вероятно, скрытом) листе после того, как люди обновят форму
Sheets("Selection").Range("f3") = UserFormData.Divisioncbo.Value
, а затем, когдаони снова открывают форму, чтобы обновить ее, основываясь на этих значениях
UserFormData.Divisioncbo.Value = Sheets("Selection").Range("f3")
Что касается диапазона для вашего фильтра, я думаю, что у вас, по сути, та же проблема, что и у меня - попытка определить диапазон неизвестной длины изатем использовать его как список, из которого пользователи могут выбирать?Я добавил список в диспетчер имен с именем PeopListname
=OFFSET(Lists!$M$3,0,0,COUNTA(Lists!$M:$M)-1,1)
, а затем сделал его источником строки в пользовательской форме VBA = PeopListname