簡體   English   中英

無法訪問 VBA 中的 ComboBox

[英]Can't acess ComboBox in VBA

我在 Excel 工作表中創建了 combobox 並將其命名為“GraphChoice”。 它位於名為“選擇圖表”的工作表中

在 VBA 中,我嘗試使用以下代碼填充數據:

Sub Choose_graph_and_date()

Dim Graph As Worksheet
Dim FormInfo As Worksheet
Set Graph = Worksheets("Choose Graph")
Set FormInfo = Worksheets("Forminfo")
Graph.Activate

Graph.GraphChoice.List = FormInfo.Range("A1:A3").Value

End Sub

我收到一條錯誤消息,提示找不到方法。 我也試過了。

GraphChoice.List = FormInfo.Range("A1:A3").Value

然后我收到錯誤 424。 Object 需要。

該代碼位於 ThisWorkbook 模塊中,因為我希望每次打開工作簿時都加載它。

有誰知道怎么了?

對於表單控件,您可以使用 DropDowns 集合...

Graph.DropDowns("GraphChoice").List = FormInfo.Range("A1:A3").Value

或者,您可以使用 Shapes 集合...

Graph.Shapes("GraphChoice").ControlFormat.List = FormInfo.Range("A1:A3").Value

對於 ActiveX 控件,您可以使用 OleObjects 集合來引用它...

Graph.OLEObjects("GraphChoice").Object.List = FormInfo.Range("A1:A3").Value

或者,您可以使用 Shapes 集合...

Graph.Shapes("GraphChoice").OLEFormat.Object.Object.List = FormInfo.Range("A1:A3").Value

實際上,您也可以使用工作表的代號來引用它。 因此,例如,假設您的工作表的代碼名稱是 Sheet2,您可以執行以下操作...

Sheet2.GraphChoice.List = FormInfo.Range("A1:A3").Value

我的理解是存在這個問題,因為 ActiveX 控件與工作表的其他常見對象(例如單元格)具有不同類型的關系(因此引用)。 您可以通過以下方式解決您的問題:

Sheets("Choose Graph").GraphChoice.List = FormInfo.Range("A1:A3").Value

或通過將圖表的 object 屬性更改為例如myGraphSheet ,然后使用:

 myGraphSheet.GraphChoice.List = FormInfo.Range("A1:A3").Value

此外,如果您希望每次打開 ComboBox 時都將其填充,則需要將代碼放入 ThisWorkbook-Module (就像您所做的那樣)和具有以下名稱的 sub 中Workbook_Open()

Sub Workbook_Open()
   'code executed when opened
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM