我在初始化期间出错,但我不知道为什么这不起作用:
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的第一张工作表
答案 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中引用不同类型的对象。