Не могу скопировать значение из Excel в Word vba - PullRequest
0 голосов
/ 15 сентября 2018

Как скопировать определенный диапазон из Excel и передать его в Word ?Код ниже скопируйте текст в виде таблицы, но я хочу скопировать его как текст ( значение ) с моим форматом шрифта без таблицы.Пытался использовать .PastSpecial по-разному, но результат DEBUG.Может кто знает решение?

Sub Word()

   Dim objWord

   Dim objDoc

   Dim objSelection

   Set objWord = CreateObject("Word.Application")

   Set objDoc = objWord.Documents.Add

   objWord.Visible = True

   Set objSelection = objWord.Selection


    Range("B51:B60").Copy

    With objDoc.Paragraphs(objDoc.Paragraphs.Count).Range
           'All formatting goes here
        .Paste
        .Font.Name = "Times New Roman"
        .Font.Color = black
        .Font.Size = 11

    End With

    objDoc.SaveAs ("D:\MyFirstSave")

End Sub

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

вы можете получить последнюю созданную таблицу и действовать по ней с помощью ConvertToText() метода:

Option Explicit

Sub Word()
    With CreateObject("Word.Application") ' create and reference a word application object
        .Visible = True ' make referenced object visible
        With .Documents.Add ' create and reference a new document of referenced word obejct
            Range("B51:B60").Copy ' copy the wanted Excel range
            With .Paragraphs(.Paragraphs.Count).Range ' reference referenced document last paragrapgh range
                .Paste
                .Font.Name = "Times New Roman"
                .Font.Color = vbBlack
                .Font.Size = 11
            End With
            .tables(.tables.Count).ConvertToText(Separator:=0).ParagraphFormat.Alignment = 0  ' wdSeparateByParagraphs = 0 and  wdAlignParagraphLeft = 0

            .SaveAs ("D:\MyFirstSave")
            .Close
        End With
    End With
End Sub
0 голосов
/ 15 сентября 2018

Возможно, вот так?

Option Explicit
Const wdFormatPlainText As Long = 22
Public Sub Copy2Word()
    Dim objWord As Object, objDoc As Object

    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Add

    objWord.Visible = True

    ThisWorkbook.Worksheets("Sheet1").Range("B51:B60").Copy

    With objDoc.Paragraphs(objDoc.Paragraphs.Count).Range
        .PasteAndFormat wdFormatPlainText
        .Font.NAME = "Times New Roman"
        .Font.Color = vbBlack
        .Font.Size = 11
    End With
    'Other code
End Sub

Перечислимые константы слова .

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