VBA копирует диаграмму Excel в Word, так как изображение меняет размер диаграммы

Я хочу создать макрос, который копирует графики из Excel и вставляет их в Word в качестве изображений (предпочтительнее улучшенные метафайлы).

Я установил документ Word с таблицей, содержащей закладки в определенных ячейках, где должны быть вставлены изображения.

Однако с моим текущим кодом вставленное изображение слишком велико и закручивает всю таблицу. Я пробовал разные параметры изображения (расширенный метафайл, png и т. Д.), Но все они имеют одинаковый результат.

Когда я пытаюсь скопировать график вручную, используя PasteSpecial в таблице, он сохраняет первоначальный размер, который является именно тем, как я этого хочу.

Что мне нужно изменить в моем коде, чтобы получить это?

 Sub CopyCharts2Word() Dim wd As Object Dim ObjDoc As Object Dim FilePath As String Dim FileName As String FilePath = "C:\Users\Name\Desktop" FileName = "Template.docx" 'check if template document is open in Word, otherwise open it On Error Resume Next Set wd = GetObject (, "Word.Application") If wd Is Nothing Then Set wd = CreateObject("Word.Application") Set ObjDoc = wd.Documents.Open(FilePath & "\" & FileName) Else On Error GoTo notOpen Set ObjDoc = wd.Documents(FileName) GoTo OpenAlready notOpen: Set ObjDoc = wd.Documents.Open(FilePath & "\" & FileName) End If OpenAlready: On Error GoTo 0 'find Bookmark in template doc wd.Visible = True ObjDoc.Bookmarks("Boomark1").Select 'copy chart from Excel Sheets("Sheet1").ChartObjects("ChartA").chart.ChartArea.Copy 'insert chart to Bookmark in template doc wd.Selection.PasteSpecial Link:=False, _ DataType:=wdPasteMetafilePicture, _ Placement:=wdInLine, _ DisplayAsIcon:=False End Sub 

Да, вот и все:

Я заменил

 'insert chart to Bookmark in template doc wd.Selection.PasteSpecial Link:=False, _ DataType:=wdPasteMetafilePicture, _ Placement:=wdInLine, _ DisplayAsIcon:=False 

с

 wd.Selection.PasteSpecial Link:=False, _ DataType:=wdPasteMetafilePicture, _ Placement:=wdTight, _ DisplayAsIcon:=False 

Таким образом, размер диаграммы остается таким же, как и в листе Excel!

  • Автоматизировать документ Word в Excel
  • Кнопка Excel VBA Copy WorkSheet в новый Word Doc
  • Получите простой текст из Word и Excel файлов, используя PHP
  • Отдельные файлы MailMerge Excel для Word
  • + URLWithString: возвращает nil
  • Принуждение таблицы к полям
  • отображать слово / содержимое файла excel в asp.net mvc4
  • MS Word - изменение количества отображаемых строк встроенного Excel с помощью vba
  • Преобразование рабочего листа Excel (xlsx) в документ Word (docx) без потери формата
  • Найти с помощью PowerShell Последнее сохраненное слово и документы excel
  • создавать офисные файлы из python
  • Interesting Posts

    Инициализация надстройки при создании надстройки excel в c #

    Как я могу поместить строку в несколько столбцов с длиной = 65, но не отрезать ее в середине слова

    Попытка использовать VLOOKUP для двух значений поиска

    код vba для вставки строки из столбца

    Воспроизведение звукового файла, когда путь находится в определенной ячейке

    NodeJs создает файл Excel и экспортирует его в PDF

    Как получить последнюю дату с тем же идентификатором в Excel

    php exported excelfile продолжает давать предупреждения

    Формула для отображения результата, только если возвращаемая дата формулы меньше даты, указанной в другой ячейке

    Java и POI: создание нового листа Excel без перезаписи

    Excel без Macro Slot Machine

    Синтаксис для распознавания содержимого ячейки как имени файла

    Найдите среднее количество нескольких ячеек, затем автозаполнение

    Доступ к переменным рабочей области Matlab с динамическими именами

    Excel – Невозможно открыть https // << PATH >> Невозможно загрузить запрошенную вами информацию – Как отключить

    Давайте будем гением компьютера.