Дженнифер нужен способ в макросе найти строку, окруженную умными или прямыми кавычками (или их комбинацией). Кажется, она не может найти подходящее сочетание команд для метода Find, чтобы найти все экземпляры такого текста во всех версиях Word.

Важно четко понимать, что именно ищется. В этом совете предполагается, что ваш макрос требует поиска собственной строки, заключенной в кавычки, а не _ любой_ строки, заключенной в кавычки. Например, в документе, который содержит две строки в кавычках, такие как «мой цитируемый текст» и «более цитируемый текст», вы хотите заранее найти только одну из строк, для которой вы знаете текст, а не обе строки. .

В этом случае, как вы заметили, вполне нормально использовать метод Find. Вопрос в том, как учесть возможность как умных, так и прямых цитат в том, что вы ищете. К счастью, метод Find по умолчанию взаимозаменяемо сопоставляет прямые и умные кавычки. Ключевым моментом является знание того, как указать, что вы хотите, чтобы кавычки были включены в поиск. Следующий фрагмент кода должен помочь:

Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find     .Text = """my quoted text"""

.Format = False     .MatchWildcards = False End With Selection.Find.Execute

Ключевым моментом в этом коде является то, как информация присваивается свойству .Text. Обратите внимание, что все, что вы ищете (в данном случае «мой цитируемый текст»), заключено в три кавычки с каждой стороны. Причина этого довольно загадочна: строка, которую вы ищете, должна быть заключена в кавычки; этого требует VBA. Это показано здесь:

"my quoted text"

Поскольку вам нужен фактический символ кавычки в начале того, что вы ищете, вам необходимо включить вторую кавычку в качестве «разделителя», чтобы указать, что вы хотите найти символ кавычки. Это означает, что теперь в начале есть три кавычки:

"""my quoted text"

Тот же метод экстра-кавычек-меток-разделителей также применяется к концу строки, поэтому вы получаете то, что показано во фрагменте кода.

Когда код выполняется, Word послушно находит строку, окруженную любым сочетанием прямых или умных кавычек, по желанию.

Также следует отметить, что этот подход работает только в том случае, если вы выполняете обычный поиск, когда для свойства .MatchWildcards установлено значение False.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (11638) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Finding_Quoted_Text_in_VBA [Поиск цитируемого текста в VBA].