Вставьте изображения из 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.