2010-11-10 130 views
2

我有一个名为comboBox,我们称之为:“comboBox1”在单元格中获取ComboBox值?

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

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

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

这一定是可能的吧?任何帮助将是伟大的,谢谢!

回答

0

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

+0

这是唯一的解决方法吗?我并不反对你,但直观地说,能够直接引用comboBox值是有意义的。感谢您的回复,我会研究这一点。 – sooprise 2010-11-10 14:53:43

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) 

的缺点,以这个技术,如果你的工作有很多的计算,可能需要一段时间来重新计算。

+0

当使用COM访问工作表时,结果如此。谢谢! – nickvans 2014-12-24 03:13:29

1

下午好,

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