在单元格中获取ComboBox值?

时间:2010-11-10 14:48:32

标签: excel vba

我有一个命名的comboBox,我们称之为:“comboBox1”

我想从单元格引用comboBox1的值。

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

上面的想法是我正在寻找的。我知道我可以将一个偶数附加到comboBox1,它填充一个单元格,可以被其他单元格读取,但这只会引入更多移动部件和复杂性。

这必须是可能的,对吧?任何帮助都会很棒,谢谢!

3 个答案:

答案 0 :(得分:1)

我认为这样的事情是可能的。

对于组合框更改事件,您需要触发重新计算:

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 :(得分:1)

下午好,

将单元格链接到组合框有一种更简单的方法。使用ComboBox的属性,ListFillRange上面是Linked Cell。您只需将此单元格指定为您希望组合框值相等的任何单元格。

答案 2 :(得分:0)

Excel允许ActiveX和表单doropdown(组合)上的单元格链接。这会将值写入一个没有任何代码的单元格。