Это, вероятно, связано с тем, как вы пытаетесь присвоить значения с помощью своих списков.Похоже, у вас есть несколько элементов в списках, и вы хотите выбрать или выделить тот, который пользователь выбрал последним.Если это так, вы не можете сделать это следующим образом:
Me.ListBoxE_DeliverTime.Value = Sheets("Equipment Request").Range("D10")
Он либо выдаст ошибку, либо ничего не отобразит в списке.Причина в том, что для выбора или выделения элемента в списке (показать, что ранее выбрал пользователь) необходимо передать целочисленное значение для индекса:
Me.ListBoxE_DeliverTime.Selected(2) = True
, который бы выделил / выделил3-й пункт в списке.Таким образом, чтобы показать в окне списка, что пользователь ранее выбрал или ввел, вам нужно будет использовать обходной путь, например оператор case , а затем передать целочисленное значение, соответствующее тексту.
Если вы хотите показать только текст из ячейки, содержащей предыдущий выбор (в данном случае D10), вы можете добавить его в качестве элемента в поле списка:
Me.ListBoxE_DeliverTime.AddItem (Sheets("Equipment Request").Range("D10").Value2)
Однако я советую избегать спискакоробки целиком.Названия ваших списков предполагают, что вы абстрагируете и отображаете одно значение за раз (ранее введенная дата, ранее введенное время);если это так, то лучше использовать текстовое поле или метку для каждого значения.
В качестве дополнительного примечания рекомендуется явно указывать vba.Когда вы вводите код, подобный следующему:
Me.TextBoxE_Comments.Value = Sheets("Equipment Request").Range("F10")
Это может работать (на этот раз), но если вы просто заинтересованы в абстрагировании значения от ячейки, тогда ваш код будет наиболее эффективен, если добавить .Value2 кконец:
Me.TextBoxE_Comments.Value = Sheets("Equipment Request").Range("F10").Value2
.Value2 абстрагирует значение от цели без форматирования.