两全其美

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

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

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。 它不足以显示列表的底部,它没有滚动条到达列表的底部,但它有一个很好的Xbutton来解除框。

如果我使用:

 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。 如果我点击文本框,我可以看到并使用滚动条。 但它没有Xbutton,可以轻松解雇。

我想要两个世界的最好的 – 滚动条和解雇button。

有什么build议么??

你为什么不添加一个用户表单,你可以放一个文本框,表单将有他自己的closuresbutton和所有你需要的空间。

快速search后,我在Youtube上find了这个video ,解释了如何将表单添加到Excel汉堡。