【问题标题】:Getting ComboBox Value In A Cell?在单元格中获取组合框值?
【发布时间】:2016-05-02 22:01:23
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: excel vba


    【解决方案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)
    

    这种技术的缺点是,如果您的工作表有很多计算,重新计算可能需要一段时间。

    【讨论】:

    • 事实证明这在使用 COM 访问工作表时也有效。谢谢!
    【解决方案2】:

    下午好,

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

    【讨论】:

      【解决方案3】:

      Excel 允许在 ActiveX 和表单 doropdown(组合)上使用单元格链接。这将在没有任何代码的情况下将值写入单元格。

      【讨论】:

      • 这是唯一的解决方法吗?我并不反对你,但直观地说,能够直接引用组合框值是有意义的。不过感谢您的回复,我会调查一下。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多