Primeiro :
Set tbl = ThisWorkbook.Worksheets("Plan10.Name").ListObjects("FUNAD").Range
Não é para renomear a Sheet e sim o Range que será copiado e cada um tem de ter um nome, nesta instrução a ABA(Worksheets) tem o nome "Plan10" e o Range ou a Tabela "FUNAD".
Se tem 3 Regiões, está utilizando a instrução para se copiar sómente uma, Set tbl = ThisWorkbook.Worksheets("Plan10.Name").ListObjects("FUNAD").Range, não utilizou a rotina do outro link em que é feito o Loop em várias tabelas.
Para se converter em Tabela, selecione a região com Dados, selecione a Aba Inserir e clique em Tabela, faça isto em cada região para se criar as 3 Tabelas, e como na rotina está definido "Table1,..2.. e 3" ou renomeie as tabelas ou ajuste na rotina conforme os nomes criados.
Veja seu modelo convertido em tabelas, nesta rotina o arquivo Word tem de estar aberto, não mexi na parte de formatação no word, mas isto é só pesquisar aqui no forum.
Se for utilizar Ranges NOMEADOS, use a rotina abaixo :
Option Base 1 'Force arrays to start at 1 instead of 0
Sub ExcelTablesToWord()
'PURPOSE: Copy/Paste An Excel Table Into a New Word Document
'NOTE: Must have Word Object Library Active in Order to Run _
(VBE > Tools > References > Microsoft Word 12.0 Object Library)
'SOURCE: www.TheSpreadsheetGuru.com
Dim WordApp As Word.Application
Dim myDoc As Word.Document
Dim WordTable As Word.Table
Dim BookmarkArray As Variant
Dim x As Integer
'List of Word Document Bookmarks (To Paste To)
BookmarkArray = Array("Bookmark1", "Bookmark2", "Bookmark3")
'Optimize Code
Application.ScreenUpdating = False
Application.EnableEvents = False
'Set Variable Equal To Destination Word Document
On Error GoTo WordDocNotFound
Set WordApp = GetObject(class:="Word.Application")
WordApp.Visible = True
Set myDoc = WordApp.Documents("Excel Table Word Report.docx")
On Error GoTo 0
'Nomeie os RANGES antes e use as linhas abaixo
'Loop nos Ranges NOMEADOS Copia e Cola
For x = 1 To ActiveWorkbook.Names.Count
'Armazena os nomes de cada Range
sTbl = ActiveWorkbook.Names(x).Name
'Copia os Ranges Nomeados
Range(sTbl).Copy
'Paste Table into MS Word (using inserted Bookmarks -> ctrl+shift+F5)
myDoc.Bookmarks(BookmarkArray(x)).Range.PasteExcelTable _
LinkedToExcel:=False, WordFormatting:=False, RTF:=False
'Autofit Table so it fits inside Word Document
Set WordTable = myDoc.Tables(x)
WordTable.AutoFitBehavior (wdAutoFitWindow)
Next x
'Completion Message
MsgBox "Copy/Pasting Complete!", vbInformation
GoTo EndRoutine
'ERROR HANDLER
WordDocNotFound:
MsgBox "Microsoft Word file 'Excel Table Word Report.docx' is not currently open, aborting.", 16
'Put Stuff Back The Way It Was Found
EndRoutine:
'Optimize Code
Application.ScreenUpdating = True
Application.EnableEvents = True
'Clear The Clipboard
Application.CutCopyMode = False
End Sub
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 27/11/2017 1:20 pm