Excel VBA скопировать текстовое поле в буфер обмена - PullRequest
0 голосов
/ 12 декабря 2018

В настоящее время я пытаюсь использовать командную кнопку для копирования текста из текстового поля в буфер обмена.Это мой полный код:

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

Я получаю сообщение об ошибке «Ошибка времени выполнения 424» Требуется объект. Отладка вызывает ».setText TextBox1.Text, чтобы выделить и сказать« MyData

Если выЯ не могу сказать, что я супер нуб с VBA, но я пытаюсь учиться. Я потратил много времени, пытаясь найти разные способы, чтобы любая помощь была бы полезной. Даже если это означает, что я пробую другой тип кода.

1 Ответ

0 голосов
/ 12 декабря 2018

Посмотрите на это: 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

** Протестировано и работает, здесь нет проблем с областью видимости, хотя текстовое поле, кнопка управления, код рабочей таблицы находятся в одной области видимости - возможно, вам потребуетсяопишите местоположение ваших объектов enter image description here -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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...