2010-11-10 127 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。您只需將此單元格指定爲您希望組合框值相等即可。