当我在 VBA 中创建一个 msgbox 时,用户根本无法与文本交互。就我而言,我希望用户能够突出显示和复制文本。我在想更好的方法可能是添加一个将文本复制到剪贴板的按钮。有什么建议么?
问问题
41348 次
5 回答
44
对于此代码:
msgbox "Does Control+C work on a lowly, old message box?"
你可以按ctrl+ c,打开记事本,ctrl+v你会得到这个:
---------------------------
Microsoft Excel
---------------------------
Does Control+C work on a lowly, old message box?
---------------------------
OK
---------------------------
于 2012-08-30T04:39:42.180 回答
11
如果您想要“可选择”的文本,请不要使用 MsgBox。使用自定义表单而不是标签使用文本框。然而...
在设计模式下更改文本框的这些属性。
- SpecialEffect - fmiSpecialEffectFlat
- BackStyle - 透明
- 锁定 - 真
然后使用此代码
Option Explicit
Private Sub UserForm_Initialize()
Me.Caption = "Message Box"
TextBox1.Text = "Hello World!"
End Sub
于 2012-08-30T06:41:36.400 回答
4
如果用户通常会复制整个消息,则可以使用 VBA 设置剪贴板文本。
或者使用输入框而不是 msgbox,因为用户可以从填充的值中复制。
于 2012-08-30T04:53:45.987 回答
4
您可以使用用户窗体制作自己的自定义消息框。这是一个基本的概念证明:一个带有一个文本框的用户表单(您可以从中选择和复制文本)。
Sub MyMsg(msg As String)
With MsgUserForm ' this is the name I gave to the userform
.TextBox1.Text = msg
.Show
End With
End Sub
用法:
MyMsg "General failure reading hard drive."
于 2012-08-30T06:40:02.893 回答