Tabela Populating Data no Word com Excel VBA: Selecionando Intervalo entre dois marcadores e colando

1

Com o Excel e o Word 2013 & Windows 8:

Essencialmente, tenho um modelo do excel que desejo atualizar para um modelo de palavra. Eu tenho cerca de 20 tabelas no Word, que são pré-formatadas e quero atualizar essas colunas de suas colunas correspondentes no Excel, mas tive um tempo muito difícil trabalhar com tabelas vba e palavra.

Tentando copiar um intervalo no Excel, selecione o intervalo correspondente no Word selecionando entre dois marcadores e cole os dados. Eu recebo um erro em tempo de execução '438': o objeto não suporta essa propriedade ou método

Eu percebo que essa provavelmente não é uma estratégia ideal para realizar essa tarefa, então se você puder sugerir uma estratégia melhor com código, eu agradeceria muito.

Sub PopulateColumninWord()

Dim wdApp As Word.Application
Dim wdDoc As Document

Set wdApp = GetObject(, "Word.Application")
Set wdDoc = wdApp.ActiveDocument

Set rngStart = ActiveDocument.Bookmarks("Start").Range
Set rngEnd = ActiveDocument.Bookmarks("End").Range

ActiveSheet.Range("C2:C19").Select
Selection.Copy

With wdDoc
    .Range(rngStart.Start, rngEnd.End).Select
    .PasteAndFormat
End With

Set wdApp = Nothing
Set wdDoc = Nothing

End Sub
    
por Capacete 08.12.2014 / 20:44

1 resposta

1

Este exemplo irá copiar as células A1:A2 do Excel para o Word

Usando favoritos

Sub PopulateColumninWord()

    Dim wdApp  As Object
    Set wdApp = GetObject(, "Word.Application")
    Set wdDoc = wdApp.ActiveDocument

    'Read in position of two bookmarks named START and END
    Set rngStart = wdDoc.Bookmarks("Start").Range
    Set rngEnd = wdDoc.Bookmarks("End").Range

    'Copy range from Excel to Word
    ThisWorkbook.Sheets(1).Range("A1:A2").Copy
    wdDoc.Range(rngStart.End + 1, rngEnd.Start - 1).PasteAndFormat (22)

    Set wdApp = Nothing
    Set wdDoc = Nothing

End Sub

Usando tabelas no Word

Sub PopulateColumninWord()

    Dim wdApp  As Object
    Set wdApp = GetObject(, "Word.Application")
    Set wdDoc = wdApp.ActiveDocument

    'Copy range from Excel to Word
    ThisWorkbook.Sheets(1).Range("A1:A2").Copy
    wdDoc.Range(wdDoc.Tables(1).Cell(1, 1).Range.Start, _
                wdDoc.Tables(1).Cell(2, 1).Range.End).PasteAndFormat (22)

    'Copy single cell from Excel to Word
    ThisWorkbook.Sheets(1).Cells(1, 2).Copy
    wdDoc.Tables(1).Cell(1, 2).Range.PasteAndFormat (22)

    Set wdApp = Nothing
    Set wdDoc = Nothing

End Sub

Links adicionais úteis

por 08.12.2014 / 23:42