微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用户表单看起来像在Excel工作表中一样,而不是单独

如何解决使用户表单看起来像在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 举报,一经查实,本站将立刻删除。