VBA:在工作表中初始化组合框

时间:2014-08-08 15:47:00

标签: vba combobox

我在初始化期间出错,但我不知道为什么这不起作用:

Private Sub Workbook_Open()
Dim ws As Worksheet

Set ws = Worksheets(1)


ws.ComboC15.AddItem "Technology"
end sub

非常奇怪,代码应该是正确的。我检查了组合名称,它是“ComboC15”。

事实上,这是次要的:

 Private Sub ComboC15_Change()

Ps:我还检查了工作表,这是我有Combo的第一张工作表

1 个答案:

答案 0 :(得分:0)

VBA中的Worksheet对象没有名为ComboC15的属性或方法,因为这完全是您自己的发明。但是,工作簿中的单个 工作表 对象(即工作表本身作为实际工作表而不是VBA工作表)知道ComboC15的所有内容,因为它&# 39,被你丢弃了。因此,您需要访问工作表对象(请注意小 w )而不是Worksheet对象(请注意大 W )。 如果它令人困惑阅读,想象一下我试图解释这个问题是多么令人困惑......

要访问工作表对象,您可以执行以下任何操作:

' Assuming "Sheet1" is the code name of the object. You can find this code name
' in the VBA editor. In the "Project Explorer" window, look under Microsoft
' Excel Objects. Your sheets are listed there in the form (for a blank, new
' workbook) "Sheet1 (Sheet1)". The bit *outside* the brackets is the code name.
Sheet1.ComboC15.AddItem "Technology"

' You can even call it directly from the "Worksheet" object by using the sheet
' index.
Worksheets(1).ComboC15.AddItem "Technology"

但是,如果您想使用它创建一个变量,那么您不必反复复制/粘贴相同的内容,请将其声明为Object而不是{{1} }。所以这样做:

Worksheet

以下SO Q& A解释了有关不同类型的工作表名称的更多信息:

我希望this article可以让您更好地了解如何在VBA中引用不同类型的对象。