我当前正在尝试使用命令按钮将文本从“文本框”复制到剪贴板。这是我的完整代码:
Private Sub CommandButton1_Click()
With New MSForms.DataObject
.SetText TextBox1.Text
.PutInClipboard
End With
End Sub
我一直收到错误消息“需要运行时错误'424'对象。调试导致“ .setText TextBox1.Text突出显示并说出” MyData
如果您不能告诉我我是VBA的超级菜鸟,但我正在尝试学习。我已经花了很多时间尝试不同的方法,所以任何帮助都会很棒。即使这意味着我尝试使用其他类型的代码。
答案 0 :(得分:0)
看看这个: https://stackoverflow.com/a/14226925/8716187
Dim DataObj As New MSForms.DataObject
'Put a string in the clipboard
DataObj.SetText Thisworkbook.Worksheet("Sheet1").TextBox1.Text 'name of your textbox here
DataObj.PutInClipboard
'Get a string from the clipboard
DataObj.GetFromClipboard
Debug.Print DataObj.GetText
**经过测试,可以正常工作,这里没有作用域问题,尽管文本框,控制按钮,工作表代码都在同一作用域中-您可能需要描述对象的位置 -WWC
我测试了您的版本,它也可以正常工作,请确保您的TextBox1符合您的想法。如何创建它,如果在运行时它可能不是您认为的数字(名称)。
这也可以编译并正常运行:
Private Sub CommandButton1_Click()
With New MSForms.DataObject
'Put a string in the clipboard
.SetText TextBox1.Text 'name of your textbox here
.PutInClipboard
'Get a string from the clipboard
.GetFromClipboard
Debug.Print .GetText
End With
End Sub
答案 1 :(得分:0)
我发现唯一有效的方法是Microsoft solution。复制代码并将其粘贴到新模块(称为“ ClipBoard ”)和可靠的剪贴板功能中。
答案 2 :(得分:0)
这对我有用。它会将Textbox1中的所有文本放入剪贴板,因此可以通过粘贴命令在其他应用程序中使用。
TextBox1.SetFocus
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1.Text)
TextBox1.Copy
答案 3 :(得分:0)
我认为这一定可以正常工作
With Me.TextBox1 .SelStart = 0 .SelLength = Len(.Text) .Copy End With