我希望我的用户表单看起来就像它实际上是Excel工作表的一部分,而不是Excel工作簿中的一个单独窗口。我无法使用实际位于工作表中的ActiveX控件,因为我需要为组合框指定RawSource,这不是ActiveX版本下的选项。有没有一种方法可以让我的用户表单看起来像是在工作表中,就像我使用ActiveX控件时一样?
您不能使用户窗体出现"在";纸张。
我不知道你的要求背后有什么想法。如果你想同时使用表格和表格,你可以显示你的表格非模态(userform1.show False
(
但是,您可以使用ActiveX控件。可以从VBA访问这些控件,并将rowSource(特性名为ListFillRange
(设置为Range,也可以单独设置项(但不能混合使用(。
设置为范围:
Dim ctrl As OLEObject
Set ctrl = ThisWorkbook.Worksheets(1).OLEObjects("ComboBox1")
ctrl.ListFillRange = "A2:A10"
设置为单个项目列表:
with ctrl
.ListFillRange = "" ' Make sure that ListFillRange is empty
With .object ' "Object" is the real ComboBox object
.clear
.AddItem "Cheese"
.AddItem "Tomato"
.AddItem "Onion"
.AddItem "Ham"
.AddItem "Olives"
.Value = "Onion"
End With
End With
如果你愿意,你也可以写
Sheet1.ComboBox1.ListFillRange = "A2:A10"
或
Sheet1.ComboBox1.Clear
Sheet1.ComboBox1.AddItem "Hello"
这假设图纸的codeName为Sheet1
-该codeName在VBA工程视图中可见,并且可能与图纸名称不同。