Получение значения ComboBox в ячейке? - PullRequest
2 голосов
/ 10 ноября 2010

У меня есть имя comboBox, назовем его «comboBox1»

Я хочу сослаться на значение comboBox1 из ячейки.

=if(comboBox1.Value=1,1,0)

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

Это должно быть возможно, верно? Любая помощь будет отличной, спасибо!

Ответы [ 3 ]

1 голос
/ 10 ноября 2010

Я думаю, что-то подобное возможно.

Для события изменения комбинированного списка вам необходимо вызвать пересчет:

Private Sub ComboBox1_Change()
    Application.Calculate
End Sub

Далее вам нужно будет добавить пользовательскую функцию, определенную пользователем. Важная часть этой линии Application.Volatile. Это обеспечит его пересчет после любого расчета.

Function GetComboVal(cmbName As String) As String

    Application.Volatile 'will always recalculate

        Dim cmb As OLEObject

        Set cmb = Sheet1.OLEObjects(cmbName)

        GetComboVal = cmb.Object.Value
    End Function

Итак, в вашей камере вам нужно будет использовать такой вызов:

=if(GetComboVal("ComboBox1")=1,1,0)

Недостатком этого метода является то, что если на вашем рабочем листе много вычислений, для его пересчета может потребоваться некоторое время.

1 голос
/ 02 мая 2016

Добрый день,

Существует гораздо более простой способ связать ячейку со списком.В свойствах ComboBox выше ListFillRange - Связанная ячейка.Вы бы просто назначили эту ячейку тому, что хотите, чтобы значение комбинированного списка тоже было равно.

0 голосов
/ 10 ноября 2010

Excel допускает ссылку на ячейку как в ActiveX, так и в форме doropdown.Это запишет значение в ячейку без кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...