Скопируйте ComboBox из документа Word в другой документ Word с помощью vba

У меня есть поле со списком (combo1) в текстовом документе, и я хотел бы скопировать его в другой текстовый документ. (конец игры будет перебирать сотни документов).

Я не могу на всю жизнь понять, как выбрать и/или скопировать поле со списком, хотя это достаточно легко сделать вне vba.

До сих пор я пытался превратить его в закладку, кажется, что все в порядке, но не копируется.

ActiveDocument.Bookmarks(combo1_bm).Select
Selection.Copy

Я думал, что это можно будет сделать как встроенную форму (так они добавляются?), Однако снова выбор работает, а Копия - нет.

ActiveDocument.InlineShapes(combo1).Select
Selection.Copy

Любые идеи о том, что я могу попробовать дальше?

Привет, Майкл


person Michael Carn-Bennett    schedule 30.04.2013    source источник


Ответы (2)


Ваша попытка с закладкой была довольно хорошей. Вам просто нужно немного расширить свой код:

ActiveDocument.Bookmarks("combo1_bm").Range.Copy
....
Selection.Paste        'or different pasting procedure

Имейте в виду, что вам не нужно выбирать объект перед его копированием. Просто попробуйте сделать так, как я показал выше. Кроме того, не пропускайте кавычки для имен или используйте указатель закладок для работы с соответствующим. Copy method скопирует внутри диапазона закладки и сохранит исходную закладку на месте без изменений.

person Kazimierz Jawor    schedule 30.04.2013
comment
Спасибо, это работает! Однако закладка должна включать всю строку + строку выше по какой-то странной причине. - person Michael Carn-Bennett; 01.05.2013

Это должно сработать.

Set ComboBox1Range = ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("combo1_bm").Range.Start - 1, _
                             End:=ActiveDocument.Bookmarks("combo1_bm").Range.End)
ComboBox1Range.Expand Unit:=wdParagraph
ComboBox1Range.Copy
person Jean-Pierre Oosthuizen    schedule 11.12.2015