Как скопировать выделение из Word в Excel, используя Word VBA - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь скопировать слово (я) из моего документа word в определенную ячейку в книге Excel. Я использовал Bookmark, чтобы найти нужный мне текст и скопировать его, а затем я открываю рабочую книгу и вставляю ее в определенную ячейку, которая является ссылкой vlookup.

Мой код выполняется, но вставка фактически не происходит. Я знаю, что копирование части кода работает, потому что, когда я запускаюсь до этой точки, а затем вручную вставляю выделение, он работает просто отлично. Я пробовал несколько вариантов вставки, но пока ничего не получалось ...

Selection. Paste

Selection.PasteSpecial (xlPasteAll)

Selection.PasteSpecial (xlPasteValues)

Вот мой код:

Sub copypastewordtoexcel()

Dim oXL As Excel.Application
Dim oWB As Excel.Workbook
Dim oSheet As Excel.Worksheet
Dim ExcelWasNotRunning As Boolean
Dim WorkbookToWorkOn As String

ActiveDocument.Bookmarks("Name").Select
Selection.Copy

WorkbookToWorkOn = "C:\Users\arboari\Desktop\Book1.xlsx"

Set oXL = GetObject(, "Excel.Application")

Set oWB = oXL.Workbooks.Open(FileName:=WorkbookToWorkOn)

ActiveDocument.Bookmarks("Name").Select
Selection.Copy

For Each oSheet In oXL.ActiveWorkbook.Worksheets
oSheet.Range("A1").Select
Selection.PasteSpecial (xlPasteValue)
Next oSheet

Set oRng = Nothing
Set oSheet = Nothing
Set oWB = Nothing
Set oXL = Nothing

End Sub

Я не уверен, что я делаю неправильно, но я был бы признателен за некоторые советы по этому вопросу!

Спасибо!

1 Ответ

3 голосов
/ 13 июня 2019

Не нужно копировать / вставлять: вы можете назначить напрямую

Sub copypastewordtoexcel()

    Dim oXL As Excel.Application
    Dim oWB As Excel.Workbook
    Dim oSheet As Excel.Worksheet
    Dim ExcelWasNotRunning As Boolean
    Dim WorkbookToWorkOn As String

    WorkbookToWorkOn = "C:\Users\arboari\Desktop\Book1.xlsx"

    Set oXL = GetObject(, "Excel.Application")
    Set oWB = oXL.Workbooks.Open(FileName:=WorkbookToWorkOn)

    For Each oSheet In oXL.ActiveWorkbook.Worksheets
            oSheet.Range("A1").Value = ActiveDocument.Bookmarks("Name").Range.Text
    Next oSheet

End Sub

РЕДАКТИРОВАТЬ: чтение из ячейки таблицы

txt = ActiveDocument.Tables(1).Cell(1, 1).Range.Text
oSheet.Range("A1").Value = Left(txt, Len(txt)-2)

Вам необходимо убрать двухсимвольный маркер "конца ячейки".

...