2012-01-23 46 views
3

我已經研究過,但無法找到是否有可能在ActiveX組合框中存儲字符串而不是範圍。VBA存儲字符串而不是範圍在ListFillRange ActiveX組合框

我的工作簿有這麼多的依賴關係,它會在用戶輸入任何類型的公式時重新計算ComboBox等等。我在基於公式的範圍中粘貼了值,這有助於並關閉計算無濟於事。任何指導表示讚賞。

更新 - 組合框被綁定,這是設置範圍的示例。

ThisWorkbook.Worksheets("Securities").OLEObjects("cboList").ListFillRange = "Securities!" & Range("mySecurities").Address 
+0

混亂(在OP和回答者方面)我認爲涉及到的事實,他們有兩種基本類型的「組合框」在Excel中。僅供參考,工作表本身有一個「活動X」組合框(作爲OLEobject嵌入)以及純粹從VBA訪問的基於MSForms的activeX組合框。 對於OLEObject,我認爲這需要綁定到一個或多個字符串值的集合(但不能同時存在)。對於MSForms組合框,請參閱下面由Rachel概述的方法。 –

+1

我沒有意識到,ActiveX有兩個「組合框」,但這澄清了我的困惑。說實話,我可能會使用下面的版本,但我的老闆希望它看起來像這樣,所以我沒有選擇。我從你的評論中認爲這是不可能的。感謝您的意見。 – Brendan

+1

沒問題。是的,我認爲這兩個是爲不同的目的而設計的。 Forms類型通常是模態的,除非你使用refedit控件,否則你甚至不能在運行時選擇Range(假設你想改變它)。 –

回答

3

使用ControlFormat屬性的AddItem方法:

With Sheet1.Shapes("ComboBox1").ControlFormat 
    .AddItem "Sunday" 
    .AddItem "Monday" 
    .AddItem "Tuesday" 
End With 
+1

謝謝你的帖子....不幸的是,這不適用於我的情況,因爲我把它綁定,即當你下拉它時顯示一個列表,但是當你選擇它時顯示另一個列表。我想我可以做一個關於返回的vlookup,但寧願如果我可以在綁定的上下文中使用.AddItem之類的東西。非常感謝。 – Brendan

相關問題