Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Como utilizar VBA para exportar dados excel para word como heading styles
Como utilizar VBA para exportar dados excel para word como heading styles
Olá pessoal,
Estou criação uma makro para exportar dados do excel para um documento word que já tem um layout definido.
Estou tentando enviar registros de linhas do excel para o word como heading style nível 3. Como posso realizar isso?
Estou tentando essa Makro mas está dando erro:
Function EscreverNoWord()
Dim objWord As New Word.Application 'o aplicativo Microsoft Word
Dim objDoc As New Excel.Application 'o documento do word em si (doc ou docx)
Dim Wordoc As Word.Document
Dim objSelection As Object
Dim myRange As Range
Dim text As String
Dim i As Long, k As Long
Worksheets("Prep.Doc").Select
Path = Range("D3")
File = Range("D4")
Set objWord = CreateObject("Word.Application")
Set Wordoc = objWord.Documents.Open(Filename:=Path & File)
objWord.Visible = True ' Word, mostre sua cara
If ActiveSheet.Index = Worksheets.Count Then
Worksheets(1).Select
Else
ActiveSheet.Next.Select
End If
Wordoc.ContentControls(1).Range.text = Range("I2")
Wordoc.ContentControls(2).Range.text = Range("I2")
Wordoc.ContentControls(3).Range.text = Range("L2")
Set objSelection = objDoc.ActiveWindow.Selection
With objSelection '<--| reference 'Selection' object
For i = 2 To 94
.TypeParagraph
.Style = objWord.ActiveDocument.Styles("Heading 3")
.TypeText text:=myRange(i, 2).text
Next
End With
End Function
Estou criação uma makro para exportar dados do excel para um documento word que já tem um layout definido.
Estou tentando enviar registros de linhas do excel para o word como heading style nível 3. Como posso realizar isso?
Estou tentando essa Makro mas está dando erro:
Function EscreverNoWord()
Dim objWord As New Word.Application 'o aplicativo Microsoft Word
Dim objDoc As New Excel.Application 'o documento do word em si (doc ou docx)
Dim Wordoc As Word.Document
Dim objSelection As Object
Dim myRange As Range
Dim text As String
Dim i As Long, k As Long
Worksheets("Prep.Doc").Select
Path = Range("D3")
File = Range("D4")
Set objWord = CreateObject("Word.Application")
Set Wordoc = objWord.Documents.Open(Filename:=Path & File)
objWord.Visible = True ' Word, mostre sua cara
If ActiveSheet.Index = Worksheets.Count Then
Worksheets(1).Select
Else
ActiveSheet.Next.Select
End If
Wordoc.ContentControls(1).Range.text = Range("I2")
Wordoc.ContentControls(2).Range.text = Range("I2")
Wordoc.ContentControls(3).Range.text = Range("L2")
Set objSelection = objDoc.ActiveWindow.Selection
With objSelection '<--| reference 'Selection' object
For i = 2 To 94
.TypeParagraph
.Style = objWord.ActiveDocument.Styles("Heading 3")
.TypeText text:=myRange(i, 2).text
Next
End With
End Function
Re: Como utilizar VBA para exportar dados excel para word como heading styles
Danlps,
O que exatamente está falhando?
O que exatamente está falhando?
Re: Como utilizar VBA para exportar dados excel para word como heading styles
Set objSelection = objDoc.ActiveWindow.Selection
With objSelection '<--| reference 'Selection' object
For i = 2 To 94
.TypeParagraph
.Style = objWord.ActiveDocument.Styles("Heading 3")
.TypeText text:=myRange(i, 2).text
Next
End With
Dá erro nessa parte ele não reconhece a variável myRange e não estou conseguindo preencher os valores como heading style. Quero saber se tem outra forma de realizar isso.
With objSelection '<--| reference 'Selection' object
For i = 2 To 94
.TypeParagraph
.Style = objWord.ActiveDocument.Styles("Heading 3")
.TypeText text:=myRange(i, 2).text
Next
End With
Dá erro nessa parte ele não reconhece a variável myRange e não estou conseguindo preencher os valores como heading style. Quero saber se tem outra forma de realizar isso.
Re: Como utilizar VBA para exportar dados excel para word como heading styles
Danlps,
Pelo código, a variável myRange é declarada, mas nunca definida. Isso é um erro no próprio código, certo?
Att
Pelo código, a variável myRange é declarada, mas nunca definida. Isso é um erro no próprio código, certo?
Att
Re: Como utilizar VBA para exportar dados excel para word como heading styles
Sim.
Estou com dois problemas nas tentativas de exportar os dados do excel para o word como "heading 3":
Ao tentar definir a variavel Myrange para seleção do range de dados que vou trabalhar ele exibe run-time error 1004.
Ao tentar identificar a seleção para preenchimento do heading ele também dá um erro porque não identifica o heading 3
Estou com dois problemas nas tentativas de exportar os dados do excel para o word como "heading 3":
Ao tentar definir a variavel Myrange para seleção do range de dados que vou trabalhar ele exibe run-time error 1004.
Ao tentar identificar a seleção para preenchimento do heading ele também dá um erro porque não identifica o heading 3
Re: Como utilizar VBA para exportar dados excel para word como heading styles
Então vamos tratar um problema por vez. Onde o myRange está dando erro?
Re: Como utilizar VBA para exportar dados excel para word como heading styles
Ok. sobre a seleção da variável myRange, estou definindo dessa forma:
Set myRange = objDoc.ActiveSheet("Hierarquia Mercadologica")
Mas quando executa, está sendo informada a mensagem: "Run-time error 91 - Object variable or With block variable not set"
Set myRange = objDoc.ActiveSheet("Hierarquia Mercadologica")
Mas quando executa, está sendo informada a mensagem: "Run-time error 91 - Object variable or With block variable not set"
Re: Como utilizar VBA para exportar dados excel para word como heading styles
Danlps,
Só uma dúvida. O que é o "Hierarquia Mercadologica"? O nome da planilha ou do range nomeado?
Só uma dúvida. O que é o "Hierarquia Mercadologica"? O nome da planilha ou do range nomeado?
Re: Como utilizar VBA para exportar dados excel para word como heading styles
Aí está o erro. myRange é uma variável do tipo Range enquanto ActiveSheet é um Worksheet. Se você quer os dados sheet "Hierarquia Mercadologica", deveria ser algo como:
Código: Selecionar todos
Set myRange = Worksheet("Hierarquia Mercadologica").Range("A1:D20")