Вставьте изображения из Excel в слово через таблицу

Мне нужно вызвать файл Word из Excel, и создать шаблон. Шаблон будет иметь 3 изображения UpperLeft, Upper Right и центральное изображение.

Я думал, что это будет лучший результат сделать это через стол.

Почему-то я не могу создать таблицу из Excel..

Private Sub CommandButton13_Click()   
    'Using early binding, not late-binding
    Dim wsDoc As Word.Document
    Dim wsApp As Word.Application
    Dim wsRng As Word.Range
    Dim wsTable as Word.Table

    Dim intNoOfRows
    Dim intNoOfColumns

    Dim s As Word.InlineShape
    Dim shp As Word.Shape

    intNoOfRows = 4
    intNoOfColumns = 2

    Set wsApp = New Word.Application
    wsApp.Visible = True

    Set wsDoc = wsApp.Documents.Add
    Set wsRange = wsDoc.Content

    Set wsTable = wsDoc.Tables.Add(wsRange, intNoOfRows, intNoOfColumns)
    wsTable.Borders.Enable = True
    wsTable.Cell(1, 1).Range.InlineShapes.AddPicture _
                       UserForm1.txtImageLogoAdecco
    wsTable.Cell(1, 2).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
    wsTable.Cell(1, 2).Range.InlineShapes.AddPicture _
                       UserForm1.txtImageLogoClient
    Set wsRng = wsTable.Cell(2, 1).Range
    With wsRng.Paragraphs.Add

    wsTable.Cell(2, 1).Merge MergeTo:=wsTable.Cell(2, 2)
    wsTable.Cell(2, 1).Height = 520
    wsTable.Cell(2, 1).Range.Paragraphs.Add
    wsTable.Cell(3, 1).Merge MergeTo:=objTable.Cell(3, 2)
    wsTable.Cell(3, 1).Range.Text = "Prepared by:" & "  " & UserForm1.txtPrepared
    wsTable.Cell(4, 1).Merge MergeTo:=objTable.Cell(4, 2)
    wsTable.Cell(4, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
    wsTable.Cell(4, 1).Range.Text = "Belgrade," & " " & Format(Date, "MMMM DD, YYYY ")

    Set wsRange = Nothing
    Set wsTable = Nothing
    Set wsDoc = Nothing
    Set wsApp = Nothing
End Sub

1 ответ

Ну, это немного понятнее, но не полностью. Я взял на себя смелость редактировать ваш код так, чтобы он был корректным, последовательным и читаемым (без всех пустых строк)!

Я начну с ясной части: << Я хочу переместить курсор на несколько строк вниз и написать текст. >>

Чтобы переместить фокус под стол, вы получите диапазон стола, а затем сверните его. Например:

Установите wsRange = wsTable.Range wsRange.Collapse wdCollapseEnd 'Теперь диапазон находится в абзаце после таблицы wsRange.Text = "text after table"

"с фоновым изображением я хочу преобразовать его в форму. Я хочу отправить его за текстом"

Это та часть, которая мне не ясна. Вы хотите сказать, что хотите вставить еще одно изображение и расположить его позади текста? Используйте метод Shapes.Add и установите для WrapFormat.Type значение wdWrapBehind.

Другие вопросы по тегам