两全其美

时间:2013-10-19 22:04:22

标签: excel excel-vba vba

我正在寻找一种暂时显示长项列表的好方法。

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

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

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

快速搜索后,我发现this video on Youtube解释了如何将表单添加到Excel speardsheet中。