Есть ли способ, чтобы vba выбрал поле в словесном документе, используя атрибут NAME свойства поля CODE? может быть, используя псевдоселектор?
Фон: у меня есть 8 полей (DOCPROPERTY Name_First, Name_Last и т. д.) в моем документе в 4 местах (всего 32 элемента)
Вместо того, чтобы перебирать всю коллекцию полей, я хочу иметь возможность возвращать коллекцию полей, соответствующих Name_First, а затем вносить изменения, InsertAfter и т. д., а затем вызывать метод обновления только для этих полей. Обновление всех полей вызывает заметную задержку в каждом поле формы при переходе к следующему полю.
В документации MSDN показаны только примеры с использованием порядковых номеров индексов, что не очень помогает в моем реальном мире. Если кто-то изменит порядковый номер поля, DonkeyKong!
1 ответ
На закладку можно ссылаться по имени. Если вы хотите обновить, скажем, 4 поля, чтобы отразить Name_First, вы можете поместить закладки на все 4 поля с такими именами, как «Name_First_1», «Name_First_2» и т. Д. Затем обновите поля, например:
For i = 1 To 4
ActiveDocument.Bookmarks("Name_First_" & i).Range.Fields(1).Update
Next
Проще говоря: отмеченный диапазон является псевдоселектором. Обновляемое поле всегда является первым полем в указанном диапазоне.
Похожие вопросы
Новые вопросы
vba
Visual Basic для приложений (VBA) - это управляемый событиями объектно-ориентированный язык программирования для написания макросов, используемый для всего пакета Office, а также для других приложений. VBA не эквивалентен VB.NET или VBS; если вы работаете в Visual Studio, используйте [vb.net]. Если ваш вопрос конкретно касается программирования любого приложения MS Office, также используйте соответствующий тег: [excel], [ms-access], [ms-word], [outlook] или [ms-project].