1

我正在寻找一种临时显示一长串项目的好方法。

假设我想在工作簿中查看可用的样式。这段代码几乎可以工作:

Sub StyleLister()
    Dim sy As Style
    For Each sy In ActiveWorkbook.Styles
        msg = msg & vbCrLf & sy
    Next
    Call DisplayList(msg)
End Sub

Sub DisplayList(s As String)
    MsgBox s
End Sub

我得到一个又高又瘦的 MsgBox。它不够高,无法显示列表的底部,并且没有滚动条可以到达列表的底部,但是它有一个不错的X按钮可以关闭该框。

如果我使用:

Sub DisplayList(s As String)
    Dim AXTbox As Object
    Set AXTbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=240, Top:=62.25, Width:=134.25, Height:= _
        171)
    With AXTbox
        .Name = "MyBox"
        .Object.Text = s
        .Object.MultiLine = True
        .Object.ScrollBars = 2
    End With
    AXTbox.Select
End Sub

我得到一个文本框。如果我单击文本框,我可以看到并使用滚动条。但它没有X按钮可以轻松解雇。

我想要两全其美 - 滚动条和解雇按钮。

有什么建议么??

4

1 回答 1

2

你为什么不直接在 Excel 中添加一个用户表单,你可以在其中放置一个文本框,表单将有他自己的关闭按钮和你需要的所有空间。

快速搜索后,我在 Youtube 上找到了这个视频,该视频解释了如何将表单添加到 Excel speardsheet。

于 2013-10-19T22:24:45.677 回答