Отменить выбор Word vba
Обновлено: 21.11.2024
Он выбирает все на листе и копирует его, а затем вставляет только значения.
Есть ли способ отменить выбор всего, когда это будет сделано?
Для этого есть два простых способа: во-первых, не выбирайте лист, с которого начинается
или просто выберите другой диапазон, когда закончите
У меня он прокручивается по всем листам. Я не могу сослаться на лист по-вашему, не так ли? то есть: ("Лист1") Разве это не вызывает его по имени? Я не хочу этого делать.
Покажите нам весь код или объясните, что вы хотите сделать.
Вы это имеете в виду?
Это то, что я использую. Все ячейки в каждой выбираются, когда я заканчиваю работу. Это не проблема, просто неприятность для меня.
Я просто хотел отменить выбор всего, когда оно будет завершено.
Получено ответов 27 баллов 20 067 статей 1 сообщений 3 669 Операционная система MacOS Версия Excel Office 365
Это должно заменить цикл или весь код?
Ошибка компиляции оператора with.
Получено ответов 27 баллов 20 067 статей 1 сообщений 3 669 Операционная система MacOS Версия Excel Office 365
Это должно заменить весь код. Также избавился от оператора If - он не нужен.
Я вставил ваш код, как показано ниже, но это ничего не изменило в том, что касается выбора.
Получено ответов 27 баллов 20 067 статей 1 сообщений 3 669 Операционная система MacOS Версия Excel Office 365
Не добавляйте его ни к чему — предполагается, что он полностью заменит весь ваш предыдущий код. Запустите его самостоятельно, а затем проверьте свои листы, вы увидите, что все заменено значениями - даже на скрытых листах.
Он ничего не делает при включении.
Получено ответов 27 баллов 20 067 статей 1 сообщений 3 669 Операционная система MacOS Версия Excel Office 365
Это не изменит листы и не изменит экран. Но если вы запустите его, а затем проверите используемый диапазон на каждом листе, все формулы будут заменены соответствующими значениями - так же, как если бы вы сделали копирование -> специальные вставки -> значения.
Это большой минус.
Получено ответов 27 баллов 20 067 статей 1 сообщений 3 669 Операционная система MacOS Версия Excel Office 365
Можете ли вы прикрепить пример своих данных и того, как вы запускаете код? Это очень простой фрагмент кода, но я все равно протестировал его перед публикацией, и проблем не возникло.
На самом деле я не могу этого сделать, потому что на нем есть наши данные о затратах, ценах и тому подобное. Однако это не принесет вам много пользы, потому что все данные извлекаются из других файлов. Я использовал надстройку Morefunc, чтобы иметь доступ к данным из закрытых файлов. Это формула в одной ячейке.
Получено ответов 27 баллов 20 067 статей 1 сообщений 3 669 Операционная система MacOS Версия Excel Office 365
Без примера я мало что могу посоветовать. Код, который я разместил, перебирает каждый рабочий лист в активной книге и обновляет каждую ячейку в используемом диапазоне значением, которое она отображает в данный момент.
Было бы важно, если бы камеры были заперты? Лист не защищен.
Я отправлю вам файл, но не хочу, чтобы он публиковался на доске. Как я могу вам его передать?
Получено отзывов 27 баллов 20 067 статей 1 сообщений 3 669 Операционная система MacOS Версия Excel Office 365
блокировка ячеек не вступает в силу, пока рабочий лист не будет защищен, так что это не имеет никакого значения.
Можете ли вы не загружать файл, а просто удалить из него личные/идентифицирующие данные? Весь смысл OzGrid состоит в том, чтобы предоставить бесплатную помощь людям, которые хотят учиться, и отправка вещей в частном порядке побеждает этот объект - что более важно, здесь есть огромное количество профессионалов и экспертов, которые могут столкнуться с этим и предложить лучшее решение. поэтому отправка вещей в частном порядке означает, что вы упускаете весь этот потенциал.
В качестве альтернативы вы можете настроить небольшой пример, чтобы показать, чего вы пытаетесь достичь?
В предыдущих статьях этой серии мы рассмотрели несколько простых примеров автоматического форматирования. В этом заключительном посте мы покажем, как вы можете использовать средство записи макросов Word, чтобы узнать, какой код необходим для выполнения задачи, и как этот сгенерированный код можно интегрировать в ваши собственные макросы.
Использование функции записи макросов Word для обнаружения необходимого кода
Давайте перестанем писать код и посмотрим на функцию записи макросов в Word. Предположим, вы хотите найти все вхождения текста «Кнопка ОК» в своем документе и отформатировать «ОК» с помощью соответствующего стиля символов, например, «Сильный». Вы знаете, как находить объекты с помощью пользовательского интерфейса, но понятия не имеете, какой код необходим для выполнения той же функции. Итак, давайте рассмотрим это немного подробнее.
Сначала добавьте в тестовый документ несколько ссылок на кнопку "ОК", чтобы вам было что найти.
На вкладке "Разработчик" выберите "Запись макроса".(Примечание: если вкладка «Разработчик» не отображается, выберите «Файл» > «Параметры» > «Настроить ленту», установите флажок «Разработчик» и нажмите «ОК».) Отображается диалоговое окно «Запись макроса» с именем макроса по умолчанию, обычно «Макрос1», и записанные макросы сохраняются. в шаблоне Normal по умолчанию.
Нажмите "ОК", чтобы принять настройки по умолчанию.
Обратите внимание, что курсор меняется на стрелку со значком кассеты, указывая на то, что сейчас идет запись.
Запишите следующие шаги:
- На вкладке "Главная" панели "Редактирование" нажмите "Найти" > "Расширенный поиск", чтобы открыть диалоговое окно "Найти и заменить".
- Введите «кнопка ОК» в поле «Найти» и нажмите «Найти далее». Word находит следующее вхождение текста в документе и выделяет его. Нажмите "Отмена", чтобы закрыть диалоговое окно "Найти и заменить".
- Удерживая нажатой клавишу Shift, семь раз нажмите клавишу со стрелкой влево, чтобы отменить выбор последних семи символов в выделенном фрагменте (то есть слова «кнопка» и пробела перед ним). Мы отменяем выбор этих символов, потому что не хотим применять к ним стиль Strong; мы хотим применить стиль Strong только к части текста «ОК».
- Откройте галерею «Стили» и выберите стиль «Сильный». Слово "ОК" теперь выделено жирным шрифтом.
- Нажмите клавишу со стрелкой вправо, чтобы отменить выбор слова "ОК".
Перейдите на вкладку "Разработчик" и выберите "Остановить запись".
Теперь нажмите кнопку «Макросы», выберите имя только что записанного макроса (Macro1) и нажмите «Изменить». Вы должны увидеть следующий код:
Несколько замечаний:
- Первые несколько строк, начинающиеся с символа ‘ (символ апострофа зеленого цвета), являются строками комментариев. Любой текст, который появляется после апострофа, рассматривается не как код, а как текст комментария. Важно документировать свой код, чтобы другие могли его понять, поэтому VBA добавляет эти строки в ожидании того, что вы предоставите хорошее описание. Вы можете добавить дополнительные строки комментариев в любом месте кода.
- Selection.Find.ClearFormatting очищает настройки для любой предыдущей операции поиска.
- With Selection.Find … End With — это комбинация операторов VBA, которая устанавливает параметры поиска. Здесь вы указываете текст для поиска. Здесь доступна вся мощь возможностей поиска Word, поэтому вы можете в равной степени искать что-то специализированное, например стиль, или налагать определенные критерии соответствия. Дополнительные сведения о доступных параметрах см. в статье Поиск и замена текста или других элементов.
- Selection.Find.Execute — это инструкция, которая фактически выполняет операцию поиска.
- Selection.MoveLeft перемещает курсор влево. В этом примере он используется для отмены выбора семи символов найденного текста, в данном случае «кнопки», поскольку он не должен форматироваться с использованием стиля Strong.
- Selection.Style применяет указанный стиль, в данном случае Strong, к выделению.
- Selection.MoveRight перемещает курсор вправо. В этом примере он используется для отмены выделения текста путем перемещения курсора на одну позицию вправо.
Таким образом, вы можете легко увидеть код, автоматически созданный Word в ответ на ваши действия в пользовательском интерфейсе. Это действительно мощная функция, поскольку вы можете комбинировать код, созданный Word, с вашим собственным кодом.
Изменение записанного сгенерированного кода собственным кодом
Давайте возьмем сгенерированный код и изменим его, чтобы найти все вхождения слова «кнопка ОК» в документе и заменить их на «кнопка ОК», где слово «ОК» имеет соответствующий стиль Strong.
В части 2 этой серии вы создали цикл. Давайте сделаем что-то подобное здесь. Во-первых, давайте скопируем сгенерированный Word код в новый макрос с именем ApplyStrongStyle и добавим в него несколько строк. Новый макрос должен выглядеть следующим образом, где добавленные строки отображаются в виде выделенного текста.
На что следует обратить внимание:
- Do While Selection.Find.Found = True … Цикл — это цикл do, который продолжается, пока выполняется поиск текста (в данном случае «кнопка ОК») ибо в документе. Когда больше нет вхождений для поиска, значение Selection.Find.Found изменяется на False, и цикл завершается.
- Selection.Find.Execute выполняет операцию поиска, как и раньше, только в этом случае она выполняется внутри цикла.
Установив курсор внутри подпрограммы, нажмите (Запустить подчиненную/пользовательскую форму) на панели инструментов (или в меню выберите "Выполнить" > "Запустить подчиненную/пользовательскую форму").
Результат. Каждое вхождение слова «кнопка ОК» меняется на «кнопка ОК», где слово «ОК» имеет сильный стиль символов.
Неважно, насколько велик документ, сколько раз встречается кнопка «ОК» или где эти вхождения в тексте, макрос форматирует их правильно. Вы можете расширить этот макрос, чтобы найти другие компоненты пользовательского интерфейса, на которые есть ссылки в вашем тексте, и отформатировать их аналогичным образом.
Сочетая код, сгенерированный Word, и ваш собственный код, вы за короткий промежуток времени создали нечто весьма полезное. Это всего лишь небольшой пример, и с небольшими знаниями возможности безграничны.
Одним из больших преимуществ работы с VBA является объем информации и поддержки, доступных в Интернете. Вот несколько ссылок, которые помогут вам начать работу:
Помимо документации, описывающей концепции и объекты, поищите видеоуроки на YouTube и в других источниках. Например, вот веб-трансляция Microsoft под названием «Использование Visual Basic для приложений (VBA) каждый день проще, чем вы думаете», которая может оказаться полезной.
Подводя итог, в последнем сообщении блога этой серии вы узнали, как функция записи макросов Word может показать вам, какой код использовать. Затем вы можете использовать этот код в своих собственных макросах для выполнения весьма важных задач.
Целью этой серии блогов было показать самые основы Word VBA и побудить авторов к дальнейшему изучению, если это будет полезно для их работы.
Как вы думаете, мы достигли этой цели? Напишите и дайте нам знать. Мы всегда рады услышать от коллег-писателей и коллег.
Самый быстрый и простой способ выделить слово — дважды щелкнуть по нему. Однако Word по умолчанию также выбирает для вас завершающий пробел после целевого слова. Эта функция может раздражать, если вам нужно скопировать слово как часть пароля.
Поэтому мы находим 4 метода решения этой проблемы.
Способ 1. Нажмите «Shift+Стрелка влево»
.
- Прежде всего, дважды щелкните, чтобы выбрать слово, и завершающий пробел также будет выделен.
- Затем нажмите «Shift+Стрелка влево», чтобы отменить выбор завершающего пробела, как показано ниже: ол>р>
- Для начала поместите курсор в конец целевого слова, сразу после последней буквы слова.
- Затем нажмите «Ctrl+Shift+Стрелка влево». Затем выбирается только слово. ол>р>
Способ 2. Добавление знака препинания
Мы обнаружили, что Word перестает подбирать пробел после слова, если за ним не стоит знак препинания. Таким образом, еще одним способом избавиться от пробела при выделении слова является добавление после него знака препинания.
Вот как это выглядит:
Способ 3. Нажмите «Ctrl+Shift+Стрелка влево»
Помимо метода 1, есть еще одно сочетание клавиш для выбора только слова.
Способ 4. Запуск макроса
Как всегда, макрос — это волшебная вещь, которая может сэкономить нам много времени. На этот раз мы предоставим вам макрос для выбора слова до или после указателя вставки и одновременного удаления завершающего пробела.
Защитите целостность ваших данных
При частом использовании Word сложно представить, что он никогда не выйдет из строя. Дело в том, что время от времени он перестает работать. Все эти необычные отключения показывают нам, насколько важно сохранять резервную копию файла Word. К сожалению, мало кто может вовремя выполнить свой план резервного копирования. Поэтому кажется, что инструмент восстановления поврежденного файла Word может очень помочь.
Как удалить мигающие тире из диапазона копирования/вставки с помощью VBA в Excel; это удаляет пунктирный контур, который появляется после завершения вставки с помощью макроса.
Разделы:
Код
Поместите этот фрагмент кода в любое место после завершения копирования и вставки диапазона.
Полезный пример
Этот код просто копирует данные из диапазона A1:A5 в C1:C5.
Обратите внимание, что код для удаления пунктирных линий появляется после завершения копирования/вставки.
Отменить выбор скопированного диапазона
Еще одна дополнительная вещь, которую я сделал в нижней части кода, — снял выделение с диапазона скопированных ячеек.
Для этого я просто выбрал другую ячейку, A1, используя следующий код: Range("A1").Select
Примечания
Вы можете проверить приведенный выше код, чтобы увидеть, как он выглядит без дополнительных строк, которые удаляют тире и отменяют выбор скопированного диапазона, просто поместите одинарную кавычку перед этими строками, чтобы увидеть результат без них.
Загрузите прикрепленный файл, чтобы получить этот пример в Excel.
Вопрос? Спросите об этом на нашем форуме Excel
Курс Excel VBA — от новичка до эксперта
200+ видеоуроков 50+ часов обучения 200+ руководств Excel
С помощью этого онлайн-курса станьте мастером VBA и макросов в Excel и узнайте, как автоматизировать все свои задачи в Excel. (Опыт работы с VBA не требуется.)
Курс VBA — от новичка до эксперта
Копирование и вставка данных с помощью макроса VBA в Excel
Учебник: как копировать и вставлять данные с помощью макроса в Excel. Я покажу вам несколько способов сделать это.
Быстро удалить все форматирование в Excel
Учебник: Как удалить все форматирование сразу из ячеек в Excel. Это включает в себя удаление любых и.
Активация или переход к рабочему листу с помощью макросов VBA в Excel.
Учебное пособие. Сделайте определенный рабочий лист видимым с помощью макроса в Excel. Это называется активацией wo.
Получить последнюю строку с помощью VBA в Excel
Учебное пособие: (файл, использованный в видео выше) Как найти последнюю строку данных с помощью макроса/VBA в Exce.
Извлечение слова из предложения/ячейки в Excel с помощью этой пользовательской функции. Позволяет использовать определяемый пользователем разделитель.
Макрос: извлечение целых слов из ячейки или предложения в Excel с помощью этой пользовательской функции. Это позволяет уточнить.
Фильтрация данных для отображения первых 10 элементов набора данных в Excel — автофильтр
Макрос: этот макрос Excel фильтрует данные в Excel, чтобы отобразить первые 10 элементов данных.
Подпишитесь на еженедельные уроки
БОНУС: подпишитесь сейчас, чтобы загрузить нашу электронную книгу Top Tutorials!
Ссылка на наши 15 лучших учебных пособий была отправлена вам, проверьте свою электронную почту, чтобы загрузить ее!
(Если вы не видите электронное письмо, проверьте папку "Спам" или "Промоакции" и обязательно добавьте нас в список контактов, чтобы получать наши электронные письма в будущем.)
Читайте также: