2012-10-29 92 views
1

我使用Excel 2010中Excel的VBA組合框清晰

我要清除組合框在我的表中的內容(明確到空白的時候不是選中等),但我不知道該怎麼選擇並清除。我想選擇這樣的組合框:

Sheet1.ComboBox1.Clear 

但是,沒有「組合框」是工作表Sheet1對象下。只有選擇我的組合框是使用此:

Sheet1.Shapes("Drop Down 24") 

我不知道如何選擇和清除內容,任何人都可以幫助我嗎?

+1

你是否嘗試'錄製宏',而這樣做手動? –

+0

就像@ScottHoltzman建議的那樣,記錄你想要的動作的宏,然後查看Excel創建的代碼是瞭解如何在VBA中編寫代碼的好方法。 – PowerUser

回答

1

什麼

ActiveSheet.Shapes.Range(Array("Drop Down 24")).Select 
With Selection 
    .ListFillRange = "" 
End With 
+0

謝謝。現在所有的列表選項都消失了。但我想保留原始列表選項。有沒有辦法讓組合框變清楚,並在點擊下拉菜單時顯示選項? –

+0

不確定要理解......你想讓組合框被填充或清空嗎?或根據某個事件填充/清空?如果是這樣,我不會推薦使用ActiveX控件,而不是非常靈活的控件,而是一個用戶窗體,你可以完全控制所有的形狀 – lmb

+0

謝謝。問題解決了。 –

1

我假設你真的想使你的控制空白的顯示值。在這種情況下,爲Drop Down Object,當你指出你會做到這一點:

Sheet1.Shapes("Drop Down 2").OLEFormat.Object.Value = 0 

其中0表示從列表中哪些元素被選中I.E.沒有。

如果不工作,那麼你很可能實際處理在這種情況下要使用這個組合框:

Sheet1.Shapes("Drop Down 2").OLEFormat.Object.Object.Value = "" 

注意創建此代碼和測試在Excel 2003(我因此到達實際對象的路徑在Excel 2010上可能略有不同。)

+0

感謝您的回覆。 –

+0

+1用於詳細解釋。 –

0

將下拉列表重置爲空白單元格,但仍然保留列表供將來使用。

創建宏以清除單元格。在錄製過程中,只需選擇單元格並選擇「清除內容」即可。這會將選擇設置爲空白單元格,但仍然保留下拉列表。

它看起來像這樣。

Range("H3").Select 
Selection.ClearContents 
1

作爲一個真正的程序員,我寧願喜歡這種方式。這並不取決於表格上的excel「範圍記憶選擇」。

Set oCombo = Sheets("SheetName").Shapes("cmbComboName").ControlFormat 
For I = oCombo.ListCount To 1 Step -1 
    oCombo.RemoveItem (I) 
Next