Excel 2003 ComboBox/
-
12-10-2019 - |
Вопрос
Я не могу узнать эту информацию: возможно ли показывать этикетки в этих двух типах списков, а не на реальных значениях? Конечно, когда выбирается метка, значение ячейки или ComboBox (в качестве элемента управления формой) получает реальное значение.
Пример: * Продукт данных A <------> 10 Продукт B <------> 11 Продукт C <------> 22
ComboBox показывает: продукт A, продукт B и продукт C Если я выберу ai Получите значение 10, b значение 11 и c значение 22
заранее спасибо
Милоуд Б.
Решение
Типичный способ сделать это - иметь таблицу поиска. Есть функция, названная что -то вроде Vlookup (это частичное имя), которую вы можете использовать в формулах, чтобы получить значение. Я сделал что -то подобное на своей работе, и я создал таблицу поиска в отдельной таблице, а затем назвал функцию поиска в моей главной.
Вы также можете использовать макросы, но, по моему мнению, это слишком много беспокоиться о текущей проблеме.
Другие советы
Проверка данных: Вы не можете иметь два значения в строке. Вы можете использовать таблицу поиска, чтобы преобразовать одно значение в другое. Или вы можете объединить значения, такие как «producta_10» и использовать формулу для извлечения «10», где вам это нужно.
Форма Combobox: Это также имеет ограниченные варианты и на самом деле не предлагает ничего большего, чем DV для того, что вы хотите.
Комплекс инструментов Combobox: Это может сделать почти все, что вы хотите. Вы установите свойство ColumnCount на 2, свойство Boundcolumn на 2 и свойство Whordths Column на что -то вроде «1; 0», чтобы скрыть второй столбец. Если бы у меня был Producta-C в A1: A3 и 10-12 в B1: B3, то я бы использовал такой код в стандартном модуле, чтобы заполнить ComboBox
Sub LoadCombobox()
Dim rCell As Range
For Each rCell In Sheet1.Range("A1:A3").Cells
Sheet1.ComboBox1.AddItem rCell.Value
Sheet1.ComboBox1.List(Sheet1.ComboBox1.ListCount - 1, 1) = rCell.Offset(0, 1).Value
Next rCell
End Sub
И такого кода в модуле листа, чтобы поместить значение в ячейку (F1 в этом примере)
Private Sub ComboBox1_Change()
Me.Range("F1").Value = Me.ComboBox1.Value
End Sub
Всякий раз, когда выбирается новое значение в ComboBox, F1 обновляется. Мы можем использовать свойство значения ComboBox, потому что мы устанавливаем свойство BoundColumn в столбец с желаемым значением.