У меня есть этот код в ThisDocument в слове .docm:Sub отключена после сохранения
Private Sub selConcept_Click()
'enable the content field, delete the other two fields,
'and delete the buttons including itself
ActiveDocument.ContentControls(3).LockContents = False
ActiveDocument.ContentControls(4).Delete
ActiveDocument.ContentControls(4).Delete
ActiveDocument.InlineShapes(3).Delete
ActiveDocument.InlineShapes(3).Delete
ActiveDocument.InlineShapes(3).Delete
End Sub
Private Sub selTask_Click()
ActiveDocument.ContentControls(4).LockContents = False
ActiveDocument.ContentControls(3).Delete
ActiveDocument.ContentControls(4).Delete
ActiveDocument.InlineShapes(3).Delete
ActiveDocument.InlineShapes(3).Delete
ActiveDocument.InlineShapes(3).Delete
End Sub
Private Sub selRef_Click()
ActiveDocument.ContentControls(5).LockContents = False
ActiveDocument.ContentControls(3).Delete
ActiveDocument.ContentControls(3).Delete
ActiveDocument.InlineShapes(3).Delete
ActiveDocument.InlineShapes(3).Delete
ActiveDocument.InlineShapes(3).Delete
End Sub
Private Sub formatSaveB_Click()
With Dialogs(wdDialogFileSaveAs)
.Format = wdFormatFilteredHTML
.Show
End With
End Sub
selConcept, selTask
и selRef
являются командными кнопками, и есть три мультимедийные контент текста управления на странице также. Щелчок одной из этих трех кнопок управления удаляет себя и две другие кнопки и удаляет два элемента управления расширенным текстом.
Путь по-другому: нажатие любой из кнопок sel
оставляет вам один богатый текстовый элемент управления и ноль sel
кнопок.
formatSaveB
- это еще одна кнопка команды в конце, а связанный с ней код открывает диалоговое окно для сохранения в виде документа .htm.
Все работает, если пользователь проходит процесс и использует кнопку formatSaveB
для сохранения; он сохраняется как HTM-файл.
Я хочу, чтобы пользователи могли спасти проекты Word, однако, если это возможно, но если я нажал одну из трех sel
кнопок, то я сохраняю документ как переименованный .docm файл, как draft.docm
, а затем, когда я снова откройте его, кнопка formatSaveB
ничего не делает. Кажется, он полностью отключен после сохранения как .docm. Даже если я выберу все остальное из страницы Draft.docm ThisDocument, он все равно не работает.
Я заметил, что если я просто сохранить как draft.docm
и не близко это, кнопка formatSaveB
все еще работает.
При попытке отладки я вижу «Ошибка выполнения 430: Word класс VBA не поддерживает автоматизацию»
UPDATE:
Спасибо Петр, на самом деле я думаю, что правые становятся мишенью, это сложно потому что, когда он удаляет (3), тогда следующий становится (3), как вы говорите. Я думаю, что у меня это получилось, хотя в любом случае правильные поля удаляются, когда я нажимаю. Кнопка «Формат», которая перестает работать, не удаляется, она просто перестает работать, и она выбирается по имени. Он не выбирает и не удаляет какие-либо другие элементы управления, он просто должен сохранять как .htm (что он делает, пока я не сохраню .docm как черновик.)
С другой стороны, я нахожу выбор по индексу боль , но я не нашел способ выбрать ContentControls по имени, вы можете посоветовать об этом? Я могу выбрать кнопки по имени, но тот же метод не работает в ContentControls.
Например, у меня есть элемент управления содержимым Rich Text, созданный с использованием режима разработки в Word, и если я нажму на него правой кнопкой мыши, я могу назвать его именем (Concept
) и тегом (ConceptTag
). Именованные и помеченные таким образом, ни одна из этих работ:
ActiveDocument.ConceptControls("Concept").Delete
ActiveDocument.ConceptControls("Concept").Select
Selection.Delete
Любые советы по выбору и удалению их по имени? Я попробовал предложение выбрать по тегу, и это тоже не сработало.
Опасности в использовании числового индекса для 'ContentControls' или' InlineShapes' является то, что вы всегда будете получать 3-й и 4-й контроль/форму, но нет никакой гарантии, какой контроль/форма это! Вам нужно найти другой отличительный аспект каждого из элементов управления и фигур, которые вы хотите удалить, и/или дать им определенное имя при их создании. Я сильно подозреваю, что ваши кнопки - «ContentControls (3)» и «ContentControls (4)». – PeterT
Спасибо, Питер, см. Мое обновление. – user3762977