【问题标题】:Copy text from a textbox to clipboard将文本从文本框复制到剪贴板
【发布时间】:2018-12-12 19:15:19
【问题描述】:

我正在尝试将文本从文本框复制到剪贴板。

Private Sub CommandButton1_Click()
    With New MSForms.DataObject
        .SetText TextBox1.Text
        .PutInClipboard
    End With
End Sub

我明白了

“需要运行时错误‘424’对象。

调试导致.setText TextBox1.Text 突出显示“MyData

【问题讨论】:

  • 请参阅下面的答案,您必须使用变量(指向物理位置的指针)实例化该 DataObject(创建),而不是直接使用它。
  • 您可能已将默认 TextBox1.Text 重命名为另一个(名称),例如txtFooBar.Text 编码时。因此,对象名称在代码和 GUI 设计中有所不同。
  • 没错,因为它按你的方式工作。

标签: excel vba


【解决方案1】:

看看这个: 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

【讨论】:

    【解决方案2】:

    我发现唯一有效的是Microsoft solution。复制代码并粘贴到一个新模块(称为“ClipBoard”)中,瞧,可靠的剪贴板功能。

    【讨论】:

      【解决方案3】:

      这对我有用。它会将 Textbox1 中的所有文本放入剪贴板,以便通过粘贴命令在另一个应用程序中使用。

      TextBox1.SetFocus
      

      TextBox1.SelStart = 0

      TextBox1.SelLength = Len(TextBox1.Text)

      TextBox1.Copy

      【讨论】:

        【解决方案4】:

        我认为这肯定可以正常工作

        With Me.TextBox1 .SelStart = 0 .SelLength = Len(.Text) .Copy End With

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-19
          • 1970-01-01
          相关资源
          最近更新 更多