Окно immediate excel как открыть

Обновлено: 03.07.2024

Окно Интерпретация используется для отладки и вычисления выражений, выполнения операторов и печати значений переменных. Окно Интерпретация вычисляет выражения, создавая и используя текущий выбранный проект.

Чтобы открыть окно Интерпретация, откройте проект для редактирования и затем выберите Отладка > Окна > Интерпретация или нажмите клавиши CTRL+ALT+I. Можно также ввести Debug.Immediate в командном окне.

Окно Интерпретация поддерживает технологию IntelliSense.

Отображение значений переменных

Окно Интерпретация может оказаться особенно полезным при отладке приложения. Например, для проверки значения переменной varA можно использовать команду Print:

Вопросительный знак (?) является псевдонимом для команды Debug.Print , поэтому можно также написать такую команду:

Обе версии этой команды возвращают значение переменной varA .

Чтобы выполнить команду Visual Studio в окне Интерпретация, нужно перед командой ввести знак больше (>). Чтобы ввести несколько команд, переключитесь в командное окно.

Вычисление выражений в процессе разработки

Окно Интерпретация можно использовать для выполнения функции или подпрограммы во время разработки.

Выполнение функции во время разработки

Скопируйте следующий код в консольное приложение Visual Basic:

В меню Отладка выберите Окна > Интерпретация.

Введите ?MyFunction(2) в окне Интерпретация и нажмите клавишу ВВОД.

Окно Интерпретация запускает MyFunction и отображает 4 .

Если в функции или подпрограмме есть точка останова, Visual Studio прерывает выполнение на соответствующей точке. При этом можно использовать окна отладчика для просмотра состояния программы. Дополнительные сведения см. в разделе Пошаговое руководство: отладке во время разработки.

Вычисление выражений во время разработки нельзя использовать в типах проектов, требующих запуска среды выполнения, таких как проекты набора средств Visual Studio для Office, веб-проекты, проекты для интеллектуальных устройств и проекты SQL.

Вычисление выражений во время разработки в решениях с несколькими проектами

Ввод команд

При выполнении команд Visual Studio в окне Интерпретация нужно ввести знак больше (>). Используйте клавиши со стрелками ВВЕРХ и ВНИЗ для прокрутки ранее выполненных команд.

Задача Решение Пример
Вычисление выражения Введите перед выражением знак вопроса (?). ? a+b
Временный переход в режим команд из режима интерпретации (для выполнения одиночной команды). Введите команду с предшествующим знаком "больше чем" (>). >alias
Переход в окно команд. В окне введите cmd с предшествующим знаком "больше чем" (>). >cmd
Возврат в окно интерпретации. В окне введите immed без знака "больше чем" (>). immed

Режим пометки

Если щелкнуть любую предыдущую строку в окне Интерпретация, автоматически включится режим пометки. Он позволяет выбирать, изменять и копировать текст предыдущих команд как в любом текстовом редакторе и вставлять их в текущую строку.

Примеры

В следующем примере показано четыре выражения и их результаты в окне Интерпретация для проекта Visual Basic.

Уведомления о первом этапе обработки исключений

В некоторых конфигурациях параметров уведомления о первом этапе обработки исключений отображаются в окне Интерпретация.

Включение или отключение уведомлений о первом этапе обработки исключений в окне интерпретации

В меню Вид выберите пункт Другие окна, а затем щелкните Вывод.

32 комментария для “VBA Excel. Содержание рубрики”

Здравствуйте! У Вас нет темы по работе с фильтром. Можно проконсультироваться на этот счёт?

Здравствуйте, Сергей!
Задавайте вопрос, постараюсь ответить.

Спасибо, Евгений! Имеется в Excel столбец с включённым автофильтром. Можно ли программно запустить окно фильтра для выбора значений? Т.е. не руками нажимать на иконку фильтра, а заставить окно открываться с помощью макроса. Спасибо за ответ.

Да, это возможно:

Сергей, уточните вопрос: нужно программно нажать кнопки Ok и Отмена или отследить, какая из них была нажата?

Евгений, я разобрался, почему не выводилось окно с фильтром.

Пример отслеживания нажатий кнопки «OK» автофильтра. На нажатие кнопки «Отмена» код не реагирует.

myString = Range ( "A1" ) . CurrentRegion . SpecialCells ( xlCellTypeVisible ) . Address myString1 = Range ( "A1" ) . CurrentRegion . SpecialCells ( xlCellTypeVisible ) . Address If Not Intersect ( ActiveCell , Range ( "A1" ) ) Is Nothing Then

Range("A1").CurrentRegion можно заменить на имя таблицы.

Евгений, а формулу в поле B2 оставлять или её можно удалить?

Сергей, событие Worksheet_Calculate() не зависит от команды SendKeys "%" . Ограничение стоит здесь:

If Not Intersect ( ActiveCell , Range ( "A1" ) ) Is Nothing Then

Код в процедуре Worksheet_Calculate() срабатывает только когда активна ячейка Range("A1") . Если заменить в этой строке Range("A1") на диапазон строки заголовков таблицы, тогда код будет срабатывать при любой активной ячейке в заголовке.

В столбце «B» не должно быть пустых ячеек до последней строки таблицы.

Как определить в VBA есть узор в ячейке?

If ActiveCell . Interior . Pattern = xlPatternNone Then

Добрый день! Никак не могу решить проблему с заблокированным автофильтром на защищенном макросом (нашел на форумах) листе. Подскажите пожалуйста, куда и какую строчку нужно добавить в макрос, чтобы при открытии файла был активен автофильтр:

Set ws = ThisWorkbook . Sheets ( 1 ) 'можно указать любой лист книги 'устанавливаем защиту на все ячейки рабочего диапазона листа 'снимаем защиту только с пустых ячеек рабочего диапазона листа Set rr = ws . UsedRange . SpecialCells ( xlCellTypeBlanks ) Private Sub Workbook_BeforeClose ( Cancel As Boolean )

Добрый день, Владислав!
Замените строку

Добрый день, Евгений!
ОГРОМНОЕ СПАСИБО. :))

Здравствуйте, помогите, пожалуйста, решить задачу((

Здравствуйте, Рафия!
С разработкой кредитного калькулятора вам помогут только за плату на бирже фриланса.

Добрый день, Евгений! Я только начинаю работать с VBA. Помогите, пожалуйста, прописать код для автоматического перемещения курсора на ячейку вправо после заполнения предыдущей.

Здравствуйте, Ева! Для перемещения фокуса в ячейку справа код VBA не нужен: используйте для этого клавишу «Tab» или настройте клавишу «Enter» для перехода вправо (Файл >> Параметры >> Дополнительно).

Спасибо за ответ! Да, но это надо делать вручную; речь идёт об автоматическом перемещении курсора.

Ввести или вставить строку кода и нажать клавишу ВВОД для ее выполнения.

Копирование и вклейка кода из ближайшего окна в окно Кода, но не позволяет сохранять код в немедленном окне.

Немедленное окно можно перетаскить и расположить в любом месте на экране, если только вы не сделали его док-окном из вкладки Стыковка диалогового окна Options.

Окно можно закрыть, выбрав поле Закрыть. Если окно Закрыть не видно, дважды щелкните заголовок, чтобы сделать окно Close видимым, а затем выберите его.

В режиме перерыва выполняется утверждение в окне Immediate в контексте или области, отображаемом в поле Процедуры. Например, если введите имя переменной Print, то выход — это значение локальной переменной. Это аналогично использованию метода Print в процедуре, выполнявшейся во время остановки программы.

Сочетания клавиш

Используйте эти комбинации ключей в окне Immediate.

Сочетание клавиш To
ВВОД Запуск строки выбранного кода.
CTRL+C Копирование выбранного текста в буфер обмена.
CTRL+V Вставка содержимого буфера обмена в точку вставки.
CTRL+X Вырезание выбранного текста в буфер обмена.
CTRL+L Отображение диалогового окна стеком вызовов (только режим перерыва).
F5 Продолжение работы приложения.
F8 Выполнение одной строки кода за раз (один шаг).
SHIFT+F8 Выполнение одной процедуры кода за раз (шаг процедуры).
DELETE или DEL Удаление выбранного текста без размещения его в буфере обмена.
F2 Отображение браузера объектов.
CTRL+ENTER Вставка возврата каретки.
CTRL+HOME Перемещение курсора в верхнюю часть окна Интерпретация.
CTRL+END Перемещение курсора в конец окна Интерпретация.
SHIFT+F10 Просмотр контекстного меню.
ALT+F5 Запускает код обработчика ошибок или возвращает ошибку вызывающей процедуре. Не влияет на настройку перехвата ошибок на вкладке Общие диалогового окна Параметры.
ALT+F8 Выполняет пошагово обработку ошибок или возвращает ошибку вызывающей процедуре. Не влияет на настройку перехвата ошибок на вкладке Общие диалогового окна Параметры.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

VBA Immediate Window является удивительным инструментом, который позволяет получить моментальные ответы о ваших файлах Excel, и быстро выполнить код. Он встроен в редактор Visual Basic и имеет множество различных применений, которые могут быть очень полезны при написании макросов, отладке кода и отображении результатов кода.

VBA Immediate Window Excel. Определяем количество листов а книге

Каждый пользователь Excel может получить выгоду от Immediate Window, даже если вы не пишете макросы. Эта статья расскажет про 5 различных применений Immediate Window. Как только вы поймете возможности этого инструмента, вы будете использовать его постоянно.

Где находится Immediate Window?

Immediate Window находится в окне редактора Visual Basic.

Как открыть Visual Basic Editor и Immediate Window в Excel и Mac

Когда вы откроете VB Editor ( Alt + F11 ), вы можете увидеть, что Immediate Window автоматически появляется в правом нижнем углу. Это его местоположение по умолчанию. Если его там нет, вы можете нажать Ctrl + G или меню View> Immediate Window.

Эта пустая коробка волшебна!

Когда вы щелкнете внутри Immediate Window, вы увидите пустое поле с мигающим текстовым курсором. На первый взгляд это не слишком увлекательно, но Immediate Window может быть очень мощным и полезным инструментом.

Что делает окно Immediate

Думайте об этом, как о пустой ячейке на листе. Довольно скучно, пока вы не добавите формулу, верно?

Итак, давайте рассмотрим 5 примеров, которые помогут вам извлечь максимальную пользу из этой волшебной коробки.

Например, чтобы узнать, сколько листов в активной книге, введите следующую строку кода в Immediate Window и нажмите клавишу «Enter».

Ответ будет отображен в следующей строке Immediate Window, прямо под кодом.

VBA Immediate Window Excel определяем количество листов через Worksheets.Count

Помещение знака вопроса (?) в начале оператора говорит Immediate Window, что мы задаем ему вопрос и ожидаем результата.

В следующем скриншоте показано несколько примеров того, как мы можем использовать Immediate Window для получения значения, формата чисел и цвета заливки активной ячейки.

Вам не нужно писать целый макрос, если вам достаточно выполнить одну строку кода в вашей книге.

Удалите знак вопроса в начале оператора, и Immediate Window выполнит эту строку кода.

Выполняем строку кода в VBA Immediate Window

На изображении выше показано, как отформатировать выделенные ячейки с помощью выравнивания по центру выделения.

Вы также можете использовать следующую строку кода, чтобы сделать лист «очень скрытым».

Скрывает значение ячеек с помощью цвета шрифта (Font и Interior.Color)

Я использую эту строку кода в инструменте оглавления Tab Hound, чтобы скрыть некоторые настройки, хранящиеся в ячейке A1. Даже если пользователь изменит цвет заливки листа, содержимое в ячейке A1 все равно будет скрыто после выполнения кода.

Вы можете запустить макрос из Immediate Window, введя имя макроса (процедура) и нажав Enter.

Конечно, вы также можете сделать это, нажав клавишу F5 или кнопку «Выполнить макрос» в VB Editor, но что если ваш макрос содержит аргументы?

Макрос не может быть запущен изнутри процедуры, если он содержит аргументы. Тем не менее, вы можете вызвать макрос из непосредственного окна.

Пример ниже представляет собой простой макрос, который вводит текущую дату (сейчас) в ячейку и меняет цвет шрифта на синий (Color = vbBlue). Этот макрос требует, чтобы для запуска ему было передано два аргумента: имя листа и адрес ячейки, где будет введена отметка даты.

Запуск VBA Макроса из Immediate Window с использованием аргументов из Excel

Для такого макроса вы обычно будете вызывать его из другого макроса и указывать аргументы в макросе, который его вызывает. Но если вы просто хотите протестировать макрос, содержащий аргументы, вы можете использовать Immediate Window для его вызова.

Это отлично подходит для написания и отладки кода. Возможно, вы не захотите запускать весь стек процедур (макросов) в коде, но вы можете использовать Immediate Window, чтобы вызывать только тот конкретный макрос, над которым вы работаете.

В приведенном выше примере показано, как можно указать аргументы после имени макроса. Для аргументов, которые являются строковыми переменными (текст), вам необходимо заключить переменную в кавычки.

Как вы можете видеть на изображении, интеллектуальный помощник доступен в Immediate Window, что позволяет легко указать аргументы для макроса.

Вы когда-нибудь видели в Интернете код VBA, в котором есть строка, подобная следующей?

«xxxxx» являются некоторой переменной, которую код вычисляет или производит.

Пример ниже представляет собой макрос, который проходит по всем листам в книге и проверяет, является ли каждый лист пустым (не используется). Если лист пустой, он отображается в окне Immediate Window с помощью Debug.Print.

Пример работы Debug.Print в VBA Immediate Window

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

Строка Debug.Print создает список пустых листов в Immediate Window, и затем мы можем вручную проверить каждый из этих листов, чтобы убедиться, что они действительно пустые.

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

Excel Макрос вывода списка всех листов - вычисляем значение переменной в Immediate Window

Я добавил точку останова (F9) в коде, чтобы приостановить код при выполнении этой строки. Когда код приостановлен, Immediate Window можно использовать для оценки или изменения переменных. На изображении выше я использовал знак вопроса, чтобы проверить значение переменной lSht. Затем я использовал переменную, чтобы получить имя листа, который в данный момент обрабатывается в цикле.

Наконец, я изменил переменную lSht на 5, используя знак равенства (lSht = 5). Это эффективно пропустит некоторые листы в цикле, потому что я изменил переменную с 2 на 5.

Это простой пример, но Immediate Window может пригодиться при пошаговом выполнении кода.

Открепить Immediate Window

Если вы хотите узнать, как я заставил Immediate Window плавать поверх приложения Excel на некоторых скриншотах.

Этот скринкаст покажет вам, как вы можете отсоединить Immediate Window.

Вот пошаговые инструкции:

  1. Щелкните левой кнопкой мыши и удерживайте верхнюю панель Immediate Window.
  2. Перетащите его из окна VB Editor. Immediate Window становится свободным плавающим окном, которое вы можете поместить поверх Excel.
  3. Чтобы повторно закрепить его, дважды щелкните на верхней панели окна.

Вы можете сделать это с любым из окон в редакторе VB, включая окна Project, Properties, Locals и Watch. Многие разработчики настраивают VB Editor не так, как макет по умолчанию. Некоторые предпочитают, чтобы окна проекта и свойств располагались справа, а не слева. Окно VB Editor дает вам большую гибкость для настройки вашего представления.

Заключение

Читайте также: