2015-05-15 2 views
0

В моих первенствовать документе у меня есть следующая информация в двух столбцах:Populate UserForm текстового поля на основе ячейки, выбранной Combox

US Dollar (USD)      1 
British Pound (GBP)     0.63 
Guatemalan Quetzal (GTQ)   0.13 
Honduras Lempira (HNL)    0.046 
Other        Please give factor 
Other        Please give factor 
Other        Please give factor 
Other        Please give factor 

У меня есть выпадающий, заполняемый в первой колонке:

Private Sub UserForm_Initialize() 
CurrencyList.List = Worksheets("MySheet").Range("A23:A30").Value 
End Sub| 

Я хочу автоматически заполнить текстовое поле конверсией валюты в следующем столбце, поэтому, когда вы выберете валюту в поле со списком, она автоматически заполнит текстовое поле, чтобы вы могли либо оставить его, либо предложили, либо изменить его, если хотите. Я нахожусь на mac с excel 2011. Все решения, с которыми я столкнулся, похоже, работают для окон, и я получаю ошибки, говоря, что методы, которые я назвал, не существуют.

+0

Что конкретно вы пробовали? Это должно быть связано с использованием 'VLookup' через' Application.VLookup' или 'Application.WorksheetFunction.VLookup', как только выбор будет изменен в Combo Box. Я не думаю, что быть на Mac влияет на любую из этих функций. –

+0

Есть ли какой-либо способ достичь этого с помощью смещения или мне нужно заполнить поле со списком по-другому, назвав диапазон в листе? Я добавляю редактирование на мой вопрос, показывая, что пошло не так, может потребоваться некоторое время, чтобы узнать, что я пробовал, поскольку я не заметил его! Спасибо – PaulBarr

ответ

0

Это должно вас начать. Он заполняет выпадающие списки форм с вашими значениями (которые у вас уже были), а Vlookup находит валюту, связанную со значениями в поле со списком. Дважды проверьте, что ваше свойство ComboBox и TextBox Name соответствует вашему коду.

Private Sub UserForm_Initialize() 

    ComboBox1.List = Worksheets("Sheet1").Range("A23:A30").Value 

End Sub 

Private Sub ComboBox1_Change() 

    TextBox1.Text = Application.VLookup(ComboBox1.Value, Worksheets("sheet1").Range("A23:B27"), 2, False) 

End Sub 
+0

Привет, это работает, когда я выбираю валюту (т. Е. Релевантный коэффициент конверсии всплывает), но когда я пытаюсь добавить значение на другой лист, я получаю ошибку несоответствия, любую идею, что может пойти не так? спасибо за вашу помощь – PaulBarr

+0

Если я понимаю, что вы хотите взять значение текстового поля и поместить его на другой лист? Я не знаю, как вы хотите выполнить это событие (когда изменены значения текстового поля, кнопка и т. Д.). Но код будет похож на мой ответ выше. 'Private Sub TextBox1_Change() Рабочие листы (« лист2 »). Диапазон (« A1 »). Value = TextBox1.Text End Sub' – Hubvill