如何解决使用户表单看起来像在Excel工作表中一样,而不是单独
我希望用户表单看起来好像实际上是Excel工作表的一部分,而不是与Excel工作簿分开的窗口一样。我无法使用实际上位于工作表中的ActiveX控件,因为我需要为ComboBoxes指定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项目视图中可见,并且可能与工作表名称不同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。