Страницы: 1
RSS
Копирование умной таблицы из MS Excel в MS Word под указанный текс в word документе., macro, vba, excel, word
 
Доброго времени суток,

Возникла необходимость переноса умной таблицы из Excel в Word.
Нужно каждый раз вставлять обновленную таблицу после конекретного текста "Currency of this Annex: EUR".

Спасибо все кто отзовется.

Часть года ниже.

Код
'-----------------------------------------
'Paste Table into MS Word
' myDoc.Paragraphs(3).Range.PasteExcelTable _, please proceeed with specifict plase in word document

  myDoc.Paragraphs(3).Range.PasteExcelTable _
    LinkedToExcel:=False, _
    WordFormatting:=False, _
    RTF:=False
'-----------------------------------------
Весь код здесь.
Код
Sub coppy_data_to_word()

'Must have Word Object Library Active in Order to Run _
'(VBE > Tools > References > Microsoft Word 15.0 Object Library)

Dim tbl As Excel.Range
Dim WordApp As Word.Application
Dim myDoc As Word.Document
Dim WordTable As Word.Table

'Optimize Code
  Application.ScreenUpdating = False
  Application.EnableEvents = False

'Copy Range from Excel
  Set tbl = ThisWorkbook.Worksheets("sheet_name").ListObjects("tbl_name").Range 'proceed with sheet name and tbl name

'Create an Instance of MS Word
  On Error Resume Next
    
    'Is MS Word already opened?
      Set WordApp = GetObject(class:="Word.Application")
    
    'Clear the error between errors
      Err.Clear

    'If MS Word is not already open then open MS Word
      If WordApp Is Nothing Then Set WordApp = CreateObject(class:="Word.Application")
    
    'Handle if the Word Application is not found
      If Err.Number = 429 Then
        MsgBox "Microsoft Word could not be found, aborting."
        GoTo EndRoutine
      End If

  On Error GoTo 0
  
'Make MS Word Visible and Active
  WordApp.Visible = True
  WordApp.Activate
    
'Create a New Document
  'Set myDoc = WordApp.Documents.Add
  Set myDoc = WordApp.Documents.Open("D:\UserData\...") 'file location
  
'Copy Excel Table Range
  tbl.Copy

'-----------------------------------------
'Paste Table into MS Word
' myDoc.Paragraphs(3).Range.PasteExcelTable _, please proceeed with specifict plase in word document

  myDoc.Paragraphs(3).Range.PasteExcelTable _
    LinkedToExcel:=False, _
    WordFormatting:=False, _
    RTF:=False
'-----------------------------------------
    
'Autofit Table so it fits inside Word Document
  Set WordTable = myDoc.Tables(1)
  WordTable.AutoFitBehavior (wdAutoFitWindow)
   
EndRoutine:
'Optimize Code
  Application.ScreenUpdating = True
  Application.EnableEvents = True

'Clear The Clipboard
  Application.CutCopyMode = False

End Sub
Страницы: 1
Наверх