Чтобы понять, что происходит, нужно подумать о том, как это будет работать, если вы будете делать это вручную, работая с выбором.Когда вы присваиваете текст Range
, это все равно, что вводить его, как и следовало ожидать.Вторая строка кода, вставка изображения, подобна выделению всей ячейки (в данном случае) и вставке изображения: она заменяет то, что находится в диапазоне.При работе вручную, если вы выбрали всю ячейку, вы нажимаете стрелку вправо или нажимаете в конце, чтобы поместить фокус после того, что было напечатано.
Тот же принцип применяется, когдаиспользуя объект Range
: ему нужно свернуть , чтобы что-то добавить к нему.
Следующий пример кода демонстрирует это.В нем также показано, как сделать код более эффективным, назначив объектам таблицу и целевой диапазон.
Dim tbl As Word.Table 'or As Object if using late-binding
Dim rng As Word.Range 'or As Object if using late-binding
Dim chrCount As Long
Set tbl = oDoc.Tables(1)
Set rng = tbl.Cell(zeile, spalte).Range
rng.Text = "test"
chrCount = rng.Characters.Count
'Get the end of the cell content
Set rng = rng.Characters(chrCount - 1)
rng.Collapse wdCollapseEnd
rng.InlineShapes.AddPicture path_to_image