Как «PasteSpecial» встроенный расширенный метафайл с текстом в Word из Excel? - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь вставить PastaSpecial расширенный метафайл в закладку Word, в соответствии с текстом (в отличие от плавающего, который, по-видимому, используется по умолчанию).В частности, мой макрос Word открывает документ Excel, копирует ряд ячеек и вставляет в Word.Я знаю, что есть параметр wdInline, но я узнал, что он работает только с объектом OLE, к сожалению.

Единственная вещь, с которой я сталкиваюсь в Интернете, - это идея использовать «Shapes» - в частности, для использования объекта InlineShape - но я не нашел способа изменить свой код, чтобы это работало.

Dim objExcel As New Excel.Application
Dim wb As Excel.Workbook
Dim uniqueIdentifier As String
Dim numRows As Long
Dim excelPath As String

Prompt1:
excelPath = InputBox("Enter directory/path to Excel Interface Catalogue")

If excelPath <> "" Then
Prompt2:
    uniqueIdentifier = InputBox("Enter the interface's Unique Identifier")
    uniqueIdentifier = UCase(uniqueIdentifier)

    If uniqueIdentifier <> "" Then
    Set wb = objExcel.Workbooks.Open(excelPath)

    wb.Sheets("API Data Fields").Range("G8").Value = uniqueIdentifier *[**Excel function populates the cells referenced in next line**]*
    numRows = (wb.Sheets("API Data Fields").Range("J8").Value) + 10
    wb.Sheets("API Data Fields").Range(wb.Sheets("API Data Fields").Cells(10, 7), wb.Sheets("API Data Fields").Cells(numRows, 10)).EntireRow.AutoFit
    wb.Sheets("API Data Fields").Range(wb.Sheets("API Data Fields").Cells(10, 7), wb.Sheets("API Data Fields").Cells(numRows, 10)).Copy
    ActiveDocument.Bookmarks("FieldDefinition").Range.PasteSpecial DataType:=wdPasteEnhancedMetafile

1 Ответ

0 голосов
/ 27 октября 2018

Пока версия Word не слишком старая (не Word 2003), у метода PasteSpecial есть аргумент Placement. Для этого требуется перечисление WdOLEPlacement, которое определяет способ вставки объекта / графического содержимого: wdFloatOverText или wdInLine.

Итак ...

ActiveDocument.Bookmarks("FieldDefinition").Range.PasteSpecial _
   DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...