Excel VBA - вставить текст из буфера обмена (ошибка 1004) - PullRequest
0 голосов
/ 04 марта 2020

Может кто-нибудь помочь мне с этим кодом?

Sub TEST()
Dim Val As Variant
Sheets("Sheet 3").Select
Val = Range("A2").Value
Sheets("Sheet 1").Select
Range("AY" & Val).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Sheets("Sheet 3").Select
Application.CutCopyMode = False
End Sub

Мне нужно перенести простой номер из Интернета, чтобы преуспеть. Мне нужно скопировать номер из Интернета в буфер обмена, затем go, чтобы преуспеть и запустить Macro. Этот макрос должен go для «листа 3» установить «Val» на основе значения A2, go для листа 1, выбрать диапазон в AY и «Val» и вставить в эту ячейку данные (число) из буфера обмена.

Но когда макрос достигает строки 7 (Selection.PasteSpecial), я получаю сообщение об ошибке:

Ошибка времени выполнения '1004': сбой метода PasteSpecial класса Range

Где у меня ошибка пожалуйста :)

1 Ответ

2 голосов
/ 04 марта 2020

Вы должны использовать MSForms.DataObject для взаимодействия с буфером обмена:

Sub TextFromClipboard()
'This works only with text!
  Dim oData As Object

  'New MSForms.DataObject with guid and late binding
  Set oData = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

  'Get text from clipboard
  'to the DataObject
  oData.GetFromClipboard

  'Show text
  MsgBox oData.GetText
End Sub

Чтобы поместить текст в буфер обмена, вы можете использовать следующие 2 метода:

oData.SetText sText
oData.PutInClipboard
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...