当我在VBA中创建msgbox时,用户根本无法与文本进行交互。就我而言,我希望用户能够突出显示和复制文本。我认为更好的方法是添加一个将文本复制到剪贴板的按钮。有什么建议吗?
答案 0 :(得分:37)
对于此代码:
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
---------------------------
答案 1 :(得分:9)
如果您想要“可选择”的文本,请不要使用MsgBox。 Use a Custom form而不是标签使用文本框。然而...
在设计模式下更改文本框的这些属性。
然后使用此代码
Option Explicit
Private Sub UserForm_Initialize()
Me.Caption = "Message Box"
TextBox1.Text = "Hello World!"
End Sub
答案 2 :(得分:6)
您可以使用输入框而不是消息框
private void RegisterESBMessageHandlers(ContainerBuilder builder)
{
...40 of them handlers
builder.RegisterType<EsbHandlers.NewPartyDocumentMessageHandler>().AsSelf();
builder.RegisterType<EsbHandlers.NewProcessMessageHandler>().AsSelf();
}
输入框复制文字
答案 3 :(得分:4)
如果用户通常会复制整个邮件,则可以使用VBA设置剪贴板文本。
或者使用输入框而不是msgbox,因为用户可以从填充的值中复制。
答案 4 :(得分:4)
您可以使用UserForm制作自己的自定义消息框。这是一个基本的概念验证:带有一个文本框的用户表单(您可以从中选择和复制文本)。
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."