Vba debug print что это
Метод Print
Синтаксис
объект. Print [ outputlist ]
Синтаксис метода Print имеет следующий описатель объекта и часть:
Part | Описание |
---|---|
object | Необязательный параметр. Выражение объекта, которое оценивает объект в списке Applies To. |
outputlist | Необязательно указывать. Выражение или список выражений, которые необходимо напечатать. Если этот элемент опущен, печатается пустая строка. |
Аргумент outputlist имеет следующий синтаксис и части:
Part | Описание |
---|---|
Spc(n) | Необязательное. Используется для вставки пробелов в выходные данные. В этом случае n — количество пробелов, которые необходимо вставить. |
Tab(n) | Необязательное. Используется для установки точки вставки в столбец с абсолютным номером; в этом случае n — номер столбца. Используйте Tab без аргумента, чтобы установить точку вставки в начало следующей зоны печати. |
expression | Необязательное. Числовое или строковое выражение, которое необходимо напечатать. |
charpos | Необязательное. Указывает точку вставки следующего символа. Используйте точку с запятой (;), чтобы установить точку вставки сразу после последнего отображенного символа. Используйте Вкладку(n) для позиционирования точки вставки на абсолютном номере столбца. Используйте Tab без аргумента, чтобы добавить точку вставки в начало следующей зоны печати. Если аргумент charpos не указан, следующий символ печатается на следующей строке. |
Примечания
Несколько выражений разделяются либо пробелом, либо точкой с запятой.
Все данные, напечатанные в окне Immediate, правильно отформатированы с помощью десятичных сепараторов для параметров локали, заданных для системы. Ключевые слова выводятся на соответствующем для ведущего приложения языке.
Данные о дате написаны с помощью стандартного формата коротких дат, распознаемой системой. Когда компонент даты или времени отсутствует или равен нулю, записываются только предоставленные данные.
Ничего не записывается, если данные outputlist имеют значение Empty. Однако, если данные списка выходных данных Null— Null это выходные данные. В этом случае ключевое слово Null переводится на соответствующий язык.
Элемент object обязателен, если метод используется вне модуля с пространством по умолчанию. Например, ошибка возникает, если метод вызван в стандартный модуль без указания объекта, но если он вызван в модуле формы, в форме отображается список выходных данных.
Поскольку метод Print обычно печатается символами с пропорциональными интервалами, взаимосвязь между количеством напечатанных символов и количеством занятых ими столбцов фиксированной ширины отсутствует. Например, широкая буква, такая как «W», занимает больше одного столбца фиксированной ширины, а узкая, такая как «i», — меньше. Для использования символов, ширина которых больше среднего значения, табличные столбцы должны быть расположены на достаточном расстоянии друг от друга. Кроме того, вы можете распечатать с помощью шрифта с фиксированной высотой (например, Courier), чтобы убедиться, что каждый символ использует только один столбец.
Пример
С помощью метода Print в этом примере отображается значение переменной MyVar в немедленном окне. Обратите внимание, что метод Print применим только к тем объектам, которые отображают текст.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
VBA Debug Print
Excel VBA Debug.Print
Debug Print is one of the useful tools presented in the VBA editor VBA Editor The Visual Basic for Applications Editor is a scripting interface. These scripts are primarily responsible for the creation and execution of macros in Microsoft software. read more to figure out how a program is working, and it helps to analyze the changes in the values of variables created in the VBA program. It shows the output of the prompt window when we run the program without any bugs.
Debug.print offers the two main benefits over the use of Msgbox to display the output of the code. It eliminates the need for clicking the OK button every time and shows the log of returned output values to the immediate windows. It saves a lot of time for users. The present article explains the use of excel Use Of Excel In today’s corporate working and data management process, Microsoft Excel is a powerful tool.» Every employee is required to have this expertise. The primary uses of Excel are as follows: Data Analysis and Interpretation, Data Organizing and Restructuring, Data Filtering, Goal Seek Analysis, Interactive Charts and Graphs. read more VBA Debug Print with many examples and explaining how to use it covering the following things.
You are free to use this image on your website, templates etc, Please provide us with an attribution link How to Provide Attribution? Article Link to be Hyperlinked
For eg:
Source: VBA Debug Print (wallstreetmojo.com)
What is VBA Debug Print?
Debug is an object in VBA and used with the two methods called Assert and Print. The print is helpful in-display messages and asserts in useful in the evaluation of the conditions. In VBA, debug. The print statement is used in any place of the coding program to show the values of a variable or messages in the Immediate Window. These do not need any acknowledgment or confirmation and do not display any effect on the code developed. It is safe and best to use in the code in the situation to facilitating access to many users. These are just helpful in testing or evaluation of the code to confirm that it is working correctly or not. It prints the variables, strings, numbers, array, values in excel sheets, and empty and active sheets.
How to Use Excel VBA Debug Print?
VBA debug.print is the statement helpful in displaying more variables at a time in the immediate window. It is the best and alternative approach to show the output.
Debug.print count, sum, average, standard deviation
As shown in the example, all the variables are separated with commas. This statement can transfer the output to the immediate window even if a window is not opened. It does not stop running the code as in Msgbox. This flexibility supports continuous monitoring of the changes in the output concerning changes in the code.
The variables count, sum, average, and standard deviation are displayed in the same line with equal space among them. If Immediate Window is not opened, follow the following steps to see the output.
Steps to Open Immediate Window and See the Output
Examples of Excel VBA Debug.Print
The following are the examples to demonstrate the use of debug print in excel VBA.
Example #1 – Displaying the Values of the Variables
After adding a name, click on create. This opens the VBA editor.
Develop a small program, as shown in the figure.
Code:
As shown in the screenshot, three dimensions or variables are decreased as X, Y, and Z as an integer, string, and Double, respectively. To print these values, Debug.print is used, and the output will be displayed in the prompt window. Press CTRL+G to see the result, as shown in the screenshot.
Run this code using the F5 key and press CTRL+G to see the output in Immediate Window.
This program can be simplified by separating the debug—print statements by a comma.
Code:
This debugs statement prints the output in the same line, as shown in the screenshot.
Example #2 – Debug print to File
This example illustrates the use of VBA debug print to display output to a file when the length of the text is too high.
The program to print the output on a file is developed, as shown in the figure.
Code:
In this program, two variables called S and Num, are considered as string and integer. The open statement is used to create a text file with the name test. A column called “Hello World” is declared into the variable S.
The output to file is shown in the below-mentioned figure.
Printing output to file is beneficial when long text is presented.
Example #3 – Displaying the Factorial of a Number in the Immediate Window
This example illustrates the use of the debug—a print statement to show the factorial of a number.
Code:
To determine the factorial, three variables are considered, including the count, number, and fact. For loop is taken to repeat the multiplication of fact-value with count to determine factorial of the number.
Here, debug. The print statement is used outside the “for” loop to display the value after completing the circle. The output is determined.
If we use debug. Print statement inside the “for” loop, the fact-value is displayed for every recurring time, as shown in the figure.
Code:
Run the code by pressing the F5 key and see the output in the immediate window. In this situation, we should consider the last value as the factorial of the given number.
Example #4 – Printing the Full name of the Active Workbook
This example explains how to print the current workbook name into the prompt window.
The program is developed, as shown in the figure.
Code:
Here ‘count’ is the variable taken to count the number of active workbooks and to display the full name of the active workbook. The full name and number of active workbooks are displayed, as shown in the figure.
The path of the workbook in the drives is accurately displayed by using the VBA debugprint statement.
VBA Excel. Окно Immediate (отладка кода, вычисления)
Окно Immediate используется в VBA Excel при написании и отладке процедур для тестирования отдельных строк кода, проверки текущих значений переменных и в качестве калькулятора.
Проверка строк кода в Immediate
Чтобы протестировать выполнение отдельных строк кода VBA Excel в окне Immediate необходимо:
Код в окне Immediate можно вводить с использованием контекстных подсказок и выбором из них объектов, свойств и методов, точно так же, как и непосредственно в модуле VBA. Можно строку кода скопировать из процедуры и вставить в окно Immediate из буфера обмена. При нажатии клавиши Enter курсор может находитmся в любом месте проверяемой строки.
Пример 1
Откройте окно Immediate, вставьте в него строку
и нажмите Enter. В первые пять ячеек первого столбца активного листа Excel будет записана строка «Тестируем окно Immediate». Таким же образом будет выполняться любая тестируемая строка вашего кода VBA.
Проверка значений переменных
Для отображения в окне Immediate значений переменных используется метод Print класса Debug (Debug.Print). Рассмотрим работу этого метода сразу на примере.
Пример 2
Помечаем маркерами строки с ключевой фразой Debug.Print, кликнув по левому полю напротив нужных строк, чтобы в этих местах остановить исполнение кода. Строка с маркером, на котором остановилась программа, будет выполнена после очередного нажатия кнопки Run Macro или клавиши F5.
Результаты выполнения кода смотрите на изображении:
Проверка значений переменных
Если при размещении нескольких элементов после ключевой фразы Debug.Print не указать разделитель, редактор VBA при запуске кода на выполнение автоматически вставит между элементами разделитель «точка с запятой». Сравните с результатом использования в качестве разделителя символа «запятая».
При работе с переменными можно изменять их значение непосредственно в окне Immediate. Введите строку с присвоением переменной нового значения и нажмите клавишу Enter. Значение переменной будет перезаписано.
Пример 3
Пример изменения значения переменной в окне Immediate во время исполнения кода VBA Excel:
VBA Debug Print
Excel VBA Debug Print
Отладка печати является одним из самых полезных, но недооцененных инструментов VBA. Отладочная печать может использоваться вместо MsgBox. Это помогает в анализе процесса и вывода в непосредственном окне. Debug Print и MsgBox в VBA работают по тем же принципам.
Они оба показывают значения как сообщение. Но есть некоторые существенные различия и преимущества использования Debug Print по сравнению с MsgBox. Debug Print, показывает нам значение, хранящееся в любой переменной или в самой Debug Print, например, MsgBox. Это также помогает в отладке ошибки после выполнения полного кода. После получения сообщения не нужно нажимать кнопку «ОК», благодаря чему мы можем сэкономить небольшое количество времени и выполнить дополнительный шаг.
Нет правильного синтаксиса Debug Print. Мы можем добавить что угодно и что угодно, чтобы видеть как вывод в непосредственном окне.
Как использовать отладочную печать в Excel VBA?
Ниже приведены различные примеры использования Debug Print в Excel с использованием кода VBA.
Для применения отладочной печати в Excel VBA необходимо выполнить следующие шаги.
Шаг 1: Перейдите в окно VBA, на вкладке меню «Вставка» выберите «Модуль», как показано ниже.
Шаг 2: В недавно открытом модуле напишите подкатегорию VBA Debug Print или вы можете выбрать любое другое имя для этого.
Шаг 3: Теперь напрямую используйте Debug Print, как показано ниже. Как мы уже говорили, в Debug Print нет синтаксиса. Мы можем выбрать все, что мы хотим напечатать.
Шаг 4: Давайте напечатаем любой случайный текст, который мы хотим видеть, и заключаем его в кавычки, чтобы увидеть результат.
Шаг 5: Как мы знаем, вывод Debug Print будет виден только в Immediate Window. Итак, мы будем открывать Immediate Window из строки меню View, как показано ниже.
После этого мы получим пустое окно Immediate, как показано ниже. Это место, где мы увидим весь вывод Debug Print.
Шаг 6: Теперь скомпилируйте код и запустите его, нажав кнопку Play, расположенную под строкой меню. Мы увидим, что печать Debug пропустила вывод в окне Immediate, как показано ниже.
В этом примере мы увидим, как распечатать любое значение, используя Debug print в Excel VBA. Для этого выполните следующие шаги:
Шаг 1: В модуле напишите подкатегорию под любым именем, как показано ниже.
Шаг 2: Нам понадобится переменная как целое число.
Шаг 3: Присвойте любое значение этому целому числу.
Шаг 4: Теперь мы будем использовать Debug print и назначим переменную, которую мы только что определили напрямую.
Шаг 5: Теперь мы запустим код, нажав клавишу F5. Мы увидим, что значение, хранящееся в переменной A, теперь печатается в окне Immediate.
Аналогичным образом давайте определим различные типы переменных в одном и том же коде и посмотрим, какие изменения происходят.
Шаг 6: Объявите еще 2 переменные как Double и Long, где мы попытаемся сохранить десятичное значение и большие значения в 6 цифрах.
Шаг 7: Теперь присвойте некоторые значения каждой определенной переменной в соответствии с их характером типов данных. Присвойте целое число переменной A, десятичное значение переменной B и любые 6 цифр или большее число переменной C.
Шаг 8: Теперь дайте отдельные отладочные отпечатки каждой из переменных, чтобы мы увидели отдельные значения, но в одном и том же непосредственном окне.
Шаг 9: Теперь запустите полный код, нажав клавишу F5 или нажав кнопку воспроизведения. Мы увидим, что за один раз все значения сохраняются в переменных A, B и C, которые можно увидеть в непосредственном окне.
В этом примере мы увидим, как будет выполняться любое математическое выражение, если мы будем использовать непосредственное окно для просмотра результатов. Для этого выполните следующие действия, чтобы использовать отладочную печать в Excel VBA.
Шаг 1: Запишите подкатегорию VBA Debug Print, как показано ниже.
Шаг 2: Здесь нам нужно попробовать добавить 2 переменные. Для этого определим 2 переменные, в которые мы будем вводить входные числа, и 3- ю переменную, в которой мы будем хранить выходные данные, полученные от сложения первых двух переменных. Давайте рассмотрим эти переменные как A, B и C соответственно.
Шаг 3: Теперь присвойте любые числовые значения переменным A и B. Здесь мы рассмотрели их как 10 и 20 соответственно.
Шаг 4: Для целей добавления мы выполним математическую функцию, в которую добавим первую и вторую переменные A и B и получим вывод в переменной C.
Шаг 5: Теперь мы будем использовать Debug print для печати вывода сложения переменных A и B под переменной C. Таким образом, только переменная C будет назначена в Debug Print для просмотра вывода сложения.
Шаг 6: Теперь запустите код, нажав клавишу F5 или нажав кнопку воспроизведения. Мы получим вывод сложения значений, хранящихся в переменных A и B под C, в ближайшем окне.
Таким образом, мы можем выполнить любой тип математического процесса и получить вывод в непосредственном окне вместо использования MsgBox, который также прост, но не так хорош, как Debug Print.
Плюсы Excel VBA Отладка Распечатать
То, что нужно запомнить
Рекомендуемые статьи
Обработка ошибок
Если вы когда-нибудь учились водить автомобиль, то наверняка вспомните, что при первой посадке на водительское сиденье все внимание было приковано к трем деталям: рулю, педалям и рычагу переключения передач. Происходящее вне автомобиля уходило на второй план, так как вначале нужно было стронуться с места. По мере практики навыки вождения улучшались и эти три детали постепенно уходили на задний план. Как ни странно, но руль и рычаг переключения передач всегда оказывались там, куда вы не смотря протягивали руки, а ноги сами находили педали. Теперь все внимание стало занимать происходящее на дороге. Иными словами, вы стали опытным водителем.
В программировании все абсолютно также. Начинающие программисты больше обращают внимание на первые попавшиеся на глаза операторы, функции и другие элементы языка, а сам алгоритм уходит на задний план. Если программа скомпилировалась без ошибок, то это уже большое счастье, хотя это еще не означает, что программа работает правильно. По мере практики мышление программиста меняется, он начинает обращать внимание на мелочи, на форматирование программы, использует более эффективные алгоритмы и в результате всего этого допускает меньше ошибок. Подводя итоги, можно сказать, что начинающий программист просто пишет программу, а опытный программист пытается найти оптимальный алгоритм и предусмотреть поведение программы в различных ситациях. Однако, от ошибок никто не застрахован, поэтому очень важно знать как быстро найти ошибку.
Типы ошибок
Существуют три типа ошибок в программе:
Инструкция On Error
Если внутри подпрограммы не предусмотрен перехват ошибки, то при возникновении ошибки работа программы прерывается и выводится стандартное окно с описанием и несколькими кнопками: Continue (продолжить), End (завершить выполнение программы), Debug (перейти в режим отладки) и Help (вывод справки).
Инструкция Resume
Инструкция Resume позволяет указать куда следует переходить после обработки ошибки. Инструкция имеет несколько форматов:
Если инструкция Resume не указана, то выполняется только код внутри обработчика ошибки и производится выход из подпрограммы.
Получение информации об ошибке и генерация ошибки
Объект Err содержит следующие методы:
Способы поиска ошибок в программе
В предыдущих разделах мы научились обрабатывать ошибки времени выполнения. Однако, наибольшее количество времени программист затрачивает на другой тип ошибок — логические ошибки. В этом случае программа компилируется без ошибок, но результат выполнения программы не соответствует ожидаемому результату. Ситуация еще более осложняется, когда неверный результат проявляется лишь периодически, а не постоянно. Инсценировать такую же ситуацию, чтобы получить этот же неверный результат, бывает крайне сложно и занимает очень много времени. В этом разделе мы рассмотрим лишь «дедовские» (но по прежнему актуальные) способы поиска ошибок, а современные способы отладки приложений, доступные в VBA, изучим в следующем разделе.
Первое, на что следует обратить внимание, — на объявления переменных. Например, рассмотрим простой пример:
При наличии инструкции компилятор производит проверку объявления всех переменных. Если переменная не была объявлена явным образом, то компилятор выведет сообщение об ошибке и выполнение программы будет остановлено. Таким образом, код должен выглядеть следующим образом:
Далее следует обратить внимание на форматирование кода. Начинающие программисты обычно не обращают на это никакого внимания, считая этот процесс лишним. А на самом деле зря! Компилятору абсолютно все равно, разместите вы все инструкции на одной строке или выполните форматирование кода. Однако, при поиске ошибок форматирование кода позволит найти ошибку гораздо быстрее.
Перед всеми инструкциями внутри блока должно быть расположено одинаковое количество пробелов. Обычно используют три или четыре пробела. От применения символов табуляции лучше отказаться. Если все же используете, то не следует в одном файле совмещать и пробелы и табуляцию. Для вложенных блоков количество пробелов умножают на уровень вложенности. Если для блока первого уровня вложенности использовалось три пробела, то для блока второго уровня вложенности должно использоваться шесть пробелов, для третьего уровня — девять пробелов и т. д. Пример форматирования вложенных блоков приведен в листинге 11.1.
Листинг 11.1. Пример форматирования вложенных блоков
Длина одной строки не должна содержать более 80 символов. Если количество символов больше, то следует выполнить переход на новую строку. При этом продолжение смещается относительно основной инструкции на величину отступа или выравнивается по какому-либо элементу. Иначе приходится пользоваться горизонтальной полосой прокрутки, а это очень неудобно при поиске ошибок.
Если программа слишком большая, то следует задуматься о разделении программы на отдельные подпрограммы или классы, которые выполняют логически законченные действия. Помните, что отлаживать отдельную подпрограмму гораздо легче, чем «спагетти»-код. Причем прежде чем вставить подпрограмму (или класс) в основную программу ее следует протестировать в отдельном проекте, передавая подпрограмме различные значения и проверяя результат ее выполнения.
Обратите внимание на то, что форматирование кода должно выполняться при написании кода, а не во время поиска ошибок. Этим вы сократите время поиска ошибки и скорее всего заметите ошибку еще на этапе написания. Если все же ошибка возникла, то вначале следует инсценировать ситуацию, при которой ошибка проявляется. После этого можно начать поиск ошибки.
Проверить значение константы позволяет следующая конструкция:
Отладка программы в VBA
Сделать поиск ошибок более эффективным позволяет отладчик, встроенный в редактор VBA. С его помощью можно выполнять программу по шагам, при этом контролируя значения переменных на каждом шагу. Отладчик позволяет также проверить, соответствует ли порядок выполнения инструкций разработанному ранее алгоритму.
Когда точки останова расставлены можно начать отладку. Для этого запускаем программу на выполнение обычным способом. При достижении точки останова выполнение программы прерывается и отладчик ожидает дальнейших действий программиста. Инструкция, которая будет выполняться на следующем шаге, помечается желтой стрелкой слева от строки.
В режиме прерывания можно посмотреть значения различных переменных в окне Locals. Если окно не отображается, то отобразить его можно выбрав в меню View пункт Locals Window. Посмотреть значение переменной можно также если навести указатель мыши на переменную. Значение переменной отобразится во всплывающей подсказке.
Для пошагового выполнения программы предназначены следующие пункты в меню Debug или соответствующие кнопки на панели инструментов Debug ( View | Toolbars | Debug):
Если необходимо посмотреть последовательность вызова подпрограмм, то следует открыть окно Call Stack, выбрав в меню View пункт Call Stack.
Подача звукового сигнала
Статьи по Visual Basic for Applications (VBA)
Помощь сайту
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов