#excel #vba #ms-word
#excel #vba #ms-word
Вопрос:
Когда я вставляю данные в закладку, они переходят в начало строки.
Какое свойство необходимо установить, чтобы вставить текст в середину абзаца?
Данные скопированы из Excel,
пробовал до сих пор:
копировать диапазон и вставлять
Копировать текст из значения и вставлять специальная
вставка плавает везде, но не в закладке.
If wDoc.Bookmarks.Count = 0 Then GoTo BookmarkMissing
For i = 1 To wDoc.Bookmarks.Count
If wDoc.Bookmarks(i).Name = sBookmarkName Then
Set wdRange = wDoc.Bookmarks(i).Range
Let bBookmarkFound = True
End If
Next i
If Not bBookmarkFound Then GoTo BookmarkMissing
Else
Set wdRange = wDoc.Range
End If
MyData.SetText rngToSend.Value2
MyData.PutInClipboard
On Error Resume Next
On Error GoTo 0
'rngToSend.Copy
'wdRange.PasteSpecial Placement:=wdFloatOverText, DataType:=2
wdRange.InsertAfter
wdRange.Tables(1).ConvertToText Separator:=" "
'wdRange.PasteSpecial Placement:=wdFloatOverText, DataType:=2
'wdRange.PasteSpecial Placement:=wdInLine
Комментарии:
1. Что вы подразумеваете под «всегда переходите к началу строки»? Пожалуйста, используйте кнопку редактирования под вашим вопросом и добавьте скриншот, показывающий, куда идет текст и где он должен быть. Пожалуйста, убедитесь, что закладка видна.
Ответ №1:
Ваш код может быть значительно упрощен. Нет необходимости перебирать закладки, чтобы найти, существует ли тот, который вам нужен, поскольку объектная модель имеет метод для этого.
Итак, этот код:
If wdoc.Bookmarks.Count = 0 Then GoTo BookmarkMissing
For I = 1 To wdoc.Bookmarks.Count
If wdoc.Bookmarks(I).name = sBookmarkName Then
Set wdRange = wdoc.Bookmarks(I).Range
Let bBookmarkFound = True
End If
Next I
If Not bBookmarkFound Then GoTo BookmarkMissing
Может быть заменен этим
If wdoc.Bookmarks.Exists(sBookmarkName) Then
wdoc.Bookmarks(sBookmarkName).Range.text = rngToSend.Value2
Else
GoTo BookmarkMissing
End If
Ответ №2:
Поскольку вы перемещаете обычный текст, буфер обмена не требуется.
wDoc.Bookmarks(i).Range.Text = rngToSend.Value2
Комментарии:
1. Спасибо за совет. Однако настройка свойств текста по-прежнему вводит значение в начале строки.
2. Тогда вы, вероятно, создаете закладку в неправильном месте. Вы можете использовать Файл> Параметры> Дополнительно> Показать содержимое документа> Показать закладки , чтобы открыть закладки, они выглядят как серые квадратные скобки.
Ответ №3:
Спасибо вам, ребята, за вашу помощь. Однако у меня была ошибка, одна старая строка кода (не видимая в моем сообщении) все еще вставляла значение в виде диапазона Excel и вставляла таблицу вместо текста.
Итак, теперь решено