Отладка vba в excel
Вы узнали, что макрос хранится в виде кода VBA в Excel. Вы также узнали, что можете напрямую написать код для создания макроса в редакторе VBA. Однако, как и в случае с любым кодом, даже код макроса может иметь дефекты, и макрос может работать не так, как вы ожидали.
Отладка VBA
Редактор VBA позволяет приостановить выполнение кода и выполнить любую необходимую задачу отладки. Ниже приведены некоторые из задач отладки, которые вы можете выполнить.
- Пошаговое выполнение кода
- Использование точек останова
- Резервное копирование или движение вперед в коде
- Не переступая через каждую строку кода
- Запрашивать что-либо во время пошагового выполнения кода
- Остановка казни
Это лишь некоторые из задач, которые вы можете выполнять в среде отладки VBA.
Пошаговое выполнение кода
Первое, что вам нужно сделать для отладки, это пройти по коду при его выполнении. Если у вас есть представление о том, какая часть кода, вероятно, создает дефект, вы можете перейти к этой строке кода. В противном случае вы можете выполнить код построчно, выполнить резервное копирование или продвинуться вперед в коде.
Вы можете перейти к коду из диалогового окна «Макрос» в рабочей книге или из самого редактора VBA.
Войдя в код из рабочей книги
Чтобы войти в код из рабочей книги, выполните следующие действия:
- Нажмите вкладку VIEW на ленте.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка.
Откроется диалоговое окно «Макрос».
Откроется редактор VBA и в окне кода появится код макроса. Первая строка в коде макроса будет выделена желтым цветом.
Шаг в код от редактора VBA
Чтобы войти в код из редактора VBA, выполните следующие действия:
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic. Откроется редактор VBA.
- Нажмите на модуль, который содержит код макроса.
Код макроса появится в окне кода.
Перейдите на вкладку «Отладка» на ленте.
Выберите Step into из выпадающего списка.
Перейдите на вкладку «Отладка» на ленте.
Выберите Step into из выпадающего списка.
Первая строка в коде макроса будет выделена. Код находится в режиме отладки, и параметры в раскрывающемся списке «Отладка» станут активными.
Резервное копирование или движение вперед в коде
Вы можете двигаться вперед или назад в коде, выбрав Step Over или Step Out.
Не переступая через каждую строку кода
Вы можете избежать пошагового прохождения каждого строкового кода, если вы идентифицируете потенциальную часть кода, которую необходимо обсудить, выбрав Run to Cursor.
Использование точек останова
Кроме того, вы можете установить точки останова в определенных строках кода и выполнить код, наблюдая результаты в каждой точке останова. Вы можете переключать точку останова и очищать все точки останова, если и когда это необходимо.
Использование часов
Вы можете добавить часы во время отладки, чтобы оценить выражение и остановить выполнение, когда переменная достигает определенного значения. Это означает, что вы настраиваете выражение наблюдения, которое будет отслеживаться до тех пор, пока оно не станет истинным, а затем макрос остановится и оставит вас в режиме прерывания. VBA предоставляет вам несколько типов часов на выбор, чтобы выполнить то, что вы ищете.
Остановка казни
Во время отладки, в любой момент, если вы нашли подсказку о том, что идет не так, вы можете остановить выполнение, чтобы расшифровать его дальше.
Если вы опытный разработчик, терминология отладки вам знакома, а опции отладки в редакторе VBA сделают вашу жизнь проще. Даже в противном случае освоение этого навыка не займет много времени, если вы изучите VBA и поймете код.
Пример таблицы и кода (35,5 KiB, 2 547 скачиваний)
Что будет рассмотрено:
Помимо этого в конце статьи можно скачать файл с кодами ошибок VBA и их расшифровками.
Исходные данные
Допустим, имеется простая таблица
И код, который должен пройтись по каждой строке таблицы, перемножить цену (столбец Цена) на количество (столбец Продажи шт), просуммировать перемноженные данные и вывести результирующую сумму в ячейку В17 :
Option Explicit Sub PrimitiveCode() Dim lr As Long, dblSumm As Double, dblIncr As Double 'цикл от первой строки таблицы до последней For lr = 1 To 14 'перемножение Цены на Количество (C*E) dblIncr = Cells(l, 3).Value * Cells(lr, 5).Value 'прибавление результата к переменной общей суммы dblSumm = dblSumm + dblIncr Next 'выводим результат в ячейку B17 Cells(17, 2).Value = dblSumm End Sub
Отладка кода в момент появления ошибки
Если посмотреть на код выше, то опытный программист VBA сразу поймет, что в таком виде код работать не будет – не выполнится и одна строка. Сразу появится ошибка:
Ошибка означает, что внутри кода есть переменная, которая ранее не была объявлена.
Сама переменная, которую VBA считает не объявленной будет выделена:
Подробнее об этой ошибке и её причинах можно почитать в статье: Variable not defined или что такое Option Explicit и зачем оно нужно?
Если кратко, то переменной l нет среди объявленных переменных(Dim l As) и мы не можем её использовать. В данном случае это опечатка и там должна быть lr, а не l. Исправляем переменную и код будет выглядеть так:
Sub PrimitiveCode() Dim lr As Long, dblSumm As Double, dblIncr As Double 'цикл от первой строки таблицы до последней For lr = 1 To 14 'перемножение Цены на Количество (C*E) dblIncr = Cells(lr, 3).Value * Cells(lr, 5).Value 'прибавление результата к переменной общей суммы dblSumm = dblSumm + dblIncr Next 'выводим результат в ячейку B17 Cells(17, 2).Value = dblSumm End Sub
С виду код теперь выполнен правильно и ошибок вызывать не должен. Однако, если его попытаться выполнить опять получим ошибку – на этот раз ошибку типов данных(Type Mismatch):
В момент появления главное нажать Debug, а не End (если будет желание прочитать про тип ошибки подробнее – можно еще нажать Help, текст будет на английском). VBA подсветит желтым строку, вычисления или операции в которой вызывают ошибку:
Теперь самый важный этап – необходимо определить причину ошибки. С виду все хорошо – одна ячейка перемножается на другую. Без опыта сложно сходу понять, что это ошибка типов данных, хоть VBA прямо об этом говорит(Type Mismatch – в переводе "Несовпадение типов"). Поэтому самое надежное в этом случае – это определить значение каждой составляющей той строки, в которой возникла ошибка. В случае с кодом выше можно воспользоваться двумя методами:
-
Навести курсор мыши на любую переменную(dblSum, lr) и посмотреть всплывающую подсказку, которая показывает имя переменной и её текущее значение:
Окна Locals и Watches
Так же для отслеживания значений переменных очень удобно использовать окно Locals и окно Watches.
Окно Locals
Окно Locals отображает все локальные переменные, задействованные в выполняемой в настоящий момент процедуре:
Как видно в этом окне отображается имя переменной, её тип и значение. Все хорошо, но в этом окне отображаются исключительно локальные переменные, объявленные на уровне модуля. Переменных других модулей, объявленные как Public и используемые в текущей процедуре там не отображаются. Подробнее про видимость переменных можно узнать в статье: Что такое переменная и как правильно её объявить?
Окно Watches
Окно Watches представляет большую ценность – в это окно можно просто "перетащить" нужную переменную или объект и в этом окне будут отражены все данные об имени переменной, её типе и текущем значении:
Теперь рассмотрим чуть подробнее как перетаскивать в это окно данные. На примере кода выше:
- Выделяем Cells(i, 3).Value
- Не снимая выделения наводим курсор мыши на это выделение
- Зажимаем левую кнопку мыши и не отпуская её переносим курсор в любое место окна Watches
Все, данные по переменной загружены и доступны для просмотра. По сути все умеют это делать - процесс очень схож с обычным перемещением файлов и папок по рабочему столу. Выделили и с зажатой левой кнопкой мыши перенесли в нужное место.
В чем еще один плюс этого окна – в этом окне можно оставлять эти значения и просматривать в моменты пошаговой отладки только занесенные в это окно переменные(про пошаговую отладку будет рассказано ниже). Если вдруг какая-то переменная/объект стали не нужны для постоянного отслеживания их данных – можно удалить их из окна Watches, чтобы не мешалась. Для этого выделяем переменную-правая кнопка мыши – Delete Watch. Так же можно поиграть с иными пунктами, наибольший интерес из которых на мой взгляд, представляет пункт Edit Watch. После его нажатия появится окно
Самые основные пункты в этом окне, важные для отладки:
- Break Then value Changes. Если его установить, VBA будет отслеживать значение этой переменной и останавливать код при любом изменении значения переменной. Это может пригодится для отслеживания значений в циклах
- Break Then value Is True – пункт пригодится для переменных с типом Boolean или для логических выражений. Как только переменная или результат выражения примет значение True – код будет остановлен на этой строке.
Например, необходимо остановить код, если номер строки будет равен 10(т.е. переменная lr примет значение 10). Тогда выражение будет иметь вид:
If lr = 10 Then 'код End if
Пошаговая отладка кода
После знакомства с отладкой кода при возникновении ошибки работать с пошаговой отладкой будет проще.
Что такое вообще пошаговая отладка?
Это просмотр этапов выполнения кода строка за строкой.
Для чего это может быть нужно?
- Чтобы проанализировать чужой код и понять более точно, что он делает изнутри, а не только увидеть результат его выполнения
- Если вы начинающий программист и часто используете макрорекордер(записываете макросы) - то пошаговая отладка поможет понять какое действия выполняет каждая строка. Это поможет быстрее научиться понимать код и убирать из него лишнее, а так же совмещать различные коды
- Если внутри кода есть ошибка логики выполнения. Это, пожалуй, самая сложная ошибка, т.к. в этом случае VBA не останавливает работу и не говорит об ошибке. Код выполняется без ошибок, но результат не такой, как ожидалось. Это означает, что либо какой-то переменной назначается не то значение, либо какое-то условие неверно или выполняется не в тот момент, в который должно. В общем по сути это ошибка разработчика, не приводящая к ошибкам синтаксиса или типов, которые VBA может отследить.
Как делать пошаговую отладку? Все просто: устанавливаете курсор в любом месте внутри кода и нажимаете клавишу F8 (либо выбрать в меню Degub-Step Into). Теперь при каждом нажатии клавиши F8 код будет выполнять одну строку кода за другой в той очередности, в которой они расположены в процедуре. Если внутри процедуры будет вызов второй процедуры или функции – код пошагово выполнит и её и затем вернется в основную процедуру.
Так же хочу привести еще пару сочетаний клавиш, которые удобно применять при пошаговой отладке:
- Shift + F8 (Degub-Step Over) - выполнение вложенной функции/процедуры без захода в неё. Если внутри основной процедуры или функции выполняется другая процедура или функция и Вы уверены, что она работает правильно - просматривать пошагово весь код вложенной процедуры/функции не имеет смысла. Чтобы вложенная процедура/функция выполнилась без пошагового просмотра надо просто нажать указанное сочетание клавиш тогда, когда строка вызова вложенной процедуры/функции будет подсвечена желтым
- Ctrl + Shift + F8 (Degub-Step Out) - завершение вложенной функции/процедуры и выход в основную с остановкой. Если все же перестарались и перешли в пошаговый проход вложенной функции(или сделали это специально, но посмотрели все, что надо) - то нажимаете это сочетание и код быстро выполнить вложенную функцию, перейдет в основную и остановится для дальнейшей пошаговой отладки
- Ctrl + F8 (Degub-Run to Cursor) - выполнение процедуры до строки, в которой на данный момент установлен курсор
Точки останова
Но куда чаще бывает нужно не просто весь код пройти пошагово, а начать пошаговое выполнение только начиная с какой-либо одной строки, чтобы не мотать строк 40 кода(да еще с циклами) ради достижения одной какой-то строки. Еще точки останова очень полезны при отладке событийных процедур(вроде Worksheet_Change , Worksheet_BeforeDoubleClick , событий элементов форм и т.п.), т.к. они в большинстве своем содержат аргументы и выполнить по F8 их просто невозможно и выполняются они только при наступлении самого события, которые они призваны обработать. Тоже самое справедливо для функций пользователя(UDF) именно для проверки их работы из листа, т.к. эти функции нельзя начать выполнять по F5 - они начинают выполняться только после их пересчета и зачастую ошибки можно выявить исключительно при вызове именно с листа.
Чтобы дать понять VBA на какой строке необходимо будет остановится необходимо установить курсор мыши в любое место нужной строки и нажать F9 или Debug-Toggle Breakpoint. Строка будет выделена темно-красным цветом.
Это еще называется установкой точки останова. Убрать точку останова можно так же, как она была установлена – F9 или Debug-Toggle Breakpoint. Так же точку основа можно установить с помощью мыши: для этого необходимо в области левее окна с кодом напротив нужной строки один раз щелкнуть левой кнопкой мыши:
Теперь можно запустить код любым удобным способом (в отладке это как правило делается клавишей F5 или с панели: Run-Run Sub/UserForm). Как только код дойдет до указанной точки останова он остановится и строка будет подсвечена желтым. Дальше можно либо продолжить выполнение в пошаговом режиме(нажимая F8), либо(проверив значения нужных переменных и объектов) нажать опять F5 и код продолжит выполняться автоматически, пока не выполнится или не достигнет другой точки останова. Самих же точек останова может быть сколько угодно и расположены они могут быть в любой процедуре или функции.
Следует помнить, что после закрытия файла с кодом точки останова не сохраняются и при следующем открытии книги их необходимо будет установить заново, если это необходимо.
Ошибок нет, но код все равно не выполняется
Еще хочу добавить, что ошибки могут появляться не всегда, даже если они есть. Бывает и так, что код выполняется без ошибок, но однако либо выполняется не так, либо вообще ничего не делает. Как правило причин две:
- Логика кода построена неверно и ошибок VBA действительно не возникает. Но т.к. логика неверна - код выполняет не то, что от него ожидается. Решение одно - пошагово выполнить весь код и детально просмотреть всё, чтобы обнаружить в какой строке или строках нарушена логика
- Один из очень распространенных вариантов: в начале кода стоит обработчик ошибок On Error Resume Next и дальше обработчик не отменяется. Данный обработчик указывает VBA, что при возникновении ошибки её следует игнорировать и переходит к выполнению следующего оператора/строки. Таким образом ошибка хоть и возникает, но она пропускается и не показывается, а выполнение кода продолжается как ни в чем не бывало. Однако как правило одна ошибка влечет другую и третью и т.д. и может получиться так, что все строки после первой ошибочной станут так же ошибочными и как следствие не выполнятся. Данный оператор будет применяться либо до конца процедуры, либо до тех пор, пока в коде не будет поставлен иной обработчик ошибок:
On Error GoTo Метка - переход выполнения кода к указанной метке( Метка ).
On Error GoTo 0 - по сути отменяет условный переход при возникновении ошибок. Метка 0 считается обнулением переходов
Один из примеров того, для чего может применяться обработчик ошибок можно найти в статье: Как из Excel обратиться к другому приложению. Там данный обработчик необходим, чтобы проверить открыто ли уже приложение Word. Если открыто - то ошибка не возникнет. Если же закрыто - то будет ошибка. И этот момент как правило и отслеживается. Я расставил подробные комментарии в коде, чтобы было более понятно что к чему:
Для чего вообще это нужно? Ведь можно создавать новый экземпляр. А дело в том, что не всегда правильно создавать новый - куда правильнее зачастую подключиться к ранее открытому, чем плодить новые экземпляры и захламлять диспетчер задач.
Тему обработки ошибок я здесь пока не раскрываю полностью, т.к. это не на один абзац. В одной из следующий статей постараюсь более подробно рассказать как и где их лучше применять и как правильно, а когда лучше вообще воздержаться от их использования.
Конечно, статья не описывает способы устранения ошибок - это просто невозможно. Только известных типов ошибок в VBA более 3 тысяч. Все их упоминать бессмысленно. Целью статьи было помочь начинающим найти строку с ошибкой и рассказать как производить отладку кода при необходимости. А все остальное придет с опытом. Однако на всякий случай я решил выложить файл Excel с описанием большей части ошибок, которые могут возникнуть. В файле указан номер ошибки, описание на английском и описание на русском. Причин ошибки может быть множество, поэтому нет однозначных рекомендаций по устранению каждой из них. Все зависит от данных и от самого кода.
Откройте Visual Basic Editor (Alt + F11) . Создайте в нем модуль и пропишите следующий код:
Sub LearningDebug() Dim A As Long, B As Long, C As Long, D As Long D = 0 A = 10 Debug.Print "A = " + Trim(Str(A)) B = 15 Debug.Print "B = " + Trim(Str(B)) C = A + B Debug.Print "C = " + Trim(Str(C)) C = Round(C /5) Debug.Print "С делим на 5: C текст" печатают указанный нами текст в открытое ранее окно Immediate , чтобы видеть, что происходит с переменной. Str (A) превращает число в текстовое значение. А Trim () убирает с него справа и слева пробелы. Оператор Round (С) округляет значения по правилам арифметики до целого числа (поэтому результат вычислений мы присваиваем в переменную целого типа Long , значит он должен быть целым). В конце кода мы специально создали ложную ситуацию, чтобы потренироваться использовать дебагер.
Станьте внутрь кода и нажмите F8 четыре раза. Желтым будет отмечено строку, который будет выполнен следующим. Наведите курсор на различные переменные. При этом появится всплывающее окошко, в котором увидите значение. Переменные, которым еще не были присвоены значения равны нулю.
Нажмите еще раз F8. В окне Immediate появится строка:
А = 10
Теперь мы можем изменить значение переменной A сразу в окне Immediate (например, изменим его на 8) . Для этого в новой строке окна Immediate напишите:
А = 8
и нажмите Enter . Теперь наведите на переменную A курсор и увидите, что его значение равно 8. чтобы увидеть значение, не приводя курсор, можно заставить его появиться в окне Immediate. Делается это так, введите в пустой строке окна Immediate:
?A
и нажмите Enter. Знак в окне Immediate означает то же самое, что и Debug.Print в коде. Просто так удобнее и короче писать. Сразу вы увидите число - результат вашего запроса.
Попробуйте изменить код потренируйтесь в использовании отладчика. Поверьте, он вам очень облегчит жизнь.
В этой статье обсуждается отладка только для настраиваемой функции, которая не использует области задач или другие элементы пользовательского интерфейса (пользовательские функции без пользовательского интерфейса).
Обратите внимание, что настраиваемые функции доступны в Excel на следующих платформах.
- Office для Windows
- Office для Mac
- Office в Интернете
Сейчас настраиваемые функции Excel не поддерживаются на iPad или в версиях Office 2019 (или более ранних), предлагаемых в виде единовременных покупок.
Если у вас нет конкретной причины для использования функции, не используемой для пользовательского интерфейса, рекомендуется использовать настраиваемые функции с общим временем работы. Обратите внимание, что использование общего времени работы означает, что ваша надстройка будет использовать Microsoft Edge с WebView2 (Chromium основе), если условия выполнены, а в противном случае надстройка будет использовать Internet Explorer 11 независимо от Windows или Microsoft 365 версии. Описание условий WebView2 см. в браузерах, используемых Office надстройки. Дополнительные сведения о runtimes см. в дополнительных сведениях о runtimes.
Для простоты в этой статье показана отладка в контексте использования Visual Studio Code для редактирования, выполнения задач, а в некоторых случаях — представления отладки. При использовании другого средства редактора или командной строки см. инструкции по командной строке в конце этой статьи.
Требования
Этот процесс отладки работает только для пользовательских функций без пользовательского интерфейса, которые не используют области задач или другие элементы пользовательского интерфейса. Настраиваемая функция без пользовательского интерфейса может быть создана, следуя шагам в руководстве Create custom functions in Excel, а затем удалив все элементы области задач и пользовательского интерфейса, установленные генератором Yeomanдля надстроек Office.
Обратите внимание, что этот процесс отладки не совместим с пользовательскими проектами функций с помощью общего времени запуска.
Использование отладки VS Code для Excel Desktop
Вы можете использовать VS Code для отлаговки пользовательских функций без пользовательского интерфейса в Office Excel на рабочем столе.
Отладка рабочего стола для Mac недоступна, но может быть достигнута с помощью средств браузера и командной строки для отладки Excel в Интернете).
Запустите надстройку из VS Code
- Откройте настраиваемую папку корневого проекта функций в VS Code.
- Выберите терминал > выполнить задачу и введите или выберите Часы. Это позволит отслеживать и восстанавливать любые изменения файлов.
- Выберите терминальный > выполнить задачу и введите или выберите Сервер разработчиков.
Запуск отладки VS Code
- Выберите просмотр > выполнить или ввести Ctrl+Shift+D, чтобы перейти на отлагивание представления.
- Из выпадаемого меню Run выберите Excel Desktop (Настраиваемые функции).
- Чтобы начать отладку, выберите F5(или > запустить отладку из меню). Новая книга Excel откроется с помощью вашей надстройки, уже загруженной и готовой к использованию.
Начало отладки
- В VS Code откройте исходный файл скрипта кода (functions.jsили functions.ts). пользовательском коде источника функции.
- В Excel введите формулу, использующую настраиваемую функцию.
На этом этапе выполнение остановится на строке кода, где заданной точкой разрыва. Теперь вы можете ступить через код, установить часы и использовать все необходимые VS Code отладки.
Используйте отлад VS Code для Excel в Microsoft Edge
Вы можете использовать VS Code для отлаговки пользовательских функций в Excel браузере Microsoft Edge пользовательского интерфейса. Чтобы использовать VS Code с Microsoft Edge, необходимо установить debugger для Microsoft Edge расширения.
Запустите надстройку из VS Code
- Откройте настраиваемую папку корневого проекта функций в VS Code.
- Выберите терминал > выполнить задачу и введите или выберите Часы. Это позволит отслеживать и восстанавливать любые изменения файлов.
- Выберите терминальный > выполнить задачу и введите или выберите Сервер разработчиков.
Запуск отладки VS Code
- Выберите просмотр > выполнить или ввести Ctrl+Shift+D, чтобы перейти на отлагивание представления.
- Из параметров отлагивание выберите Office Online (Edge Chromium).
- Откройте Excel в Microsoft Edge браузере и создайте новую книгу.
- Выберите Share в ленте и скопируйте ссылку на URL-адрес этой новой книги.
- Чтобы начать отладку, выберите F5 (> запустить отладку из меню). Появится запрос, в котором будет указан URL-адрес документа.
- Введите URL-адрес книги и нажмите кнопку Ввод.
Загрузка неопубликованной надстройки
Выберите вкладку Insert на ленте и в разделе Надстройки, выберите Office надстройки.
В диалоговом Office надстройки выберите вкладку MY ADD-INS, выберите Управление надстройками, а затем Upload надстройки.
Просмотрите файл манифеста надстройки и выберите Upload.
Настройка точек разрыва
- В VS Code откройте исходный файл скрипта кода (functions.jsили functions.ts). пользовательском коде источника функции.
- В Excel введите формулу, использующую настраиваемую функцию.
Используйте средства разработчика браузера для отлаговки настраиваемой функции в Excel в Интернете
Вы можете использовать средства разработчика браузера для отлаговки пользовательских функций без пользовательского интерфейса в Excel в Интернете. Следующие действия работают как для Windows, так и для macOS.
Запустите надстройку из Visual Studio Code
- Откройте настраиваемую папку корневого проекта функций в Visual Studio Code (VS Code).
- Выберите терминал > выполнить задачу и введите или выберите Часы. Это позволит отслеживать и восстанавливать любые изменения файлов.
- Выберите терминальный > выполнить задачу и введите или выберите Сервер разработчиков.
Загрузка неопубликованной надстройки
Откройте новую книгу Excel.
Откройте вкладку Insert на ленте и в разделе Надстройки выберите Office надстройки.
В диалоговом Office надстройки выберите вкладку MY ADD-INS, выберите Управление надстройками, а затем Upload надстройки.
После загрузки в документ он будет оставаться в стороне при каждом открываемом документе.
Начало отладки
- Откройте средства разработчика в браузере. Для Chrome и большинства браузеров F12 откроет средства разработчика.
- В средствах разработчика откройте исходный файл скрипта кода с помощью Cmd+P или Ctrl+P(functions.jsили functions.ts). пользовательском коде источника функции.
Если вам нужно изменить код, вы можете внести изменения в VS Code и сохранить изменения. Обновите браузер, чтобы увидеть загруженные изменения.
Отламывка с помощью средств командной строки
Если вы не используете VS Code, для запуска надстройки можно использовать командную строку (например, bash или PowerShell). Для отлаговки кода в Excel в Интернете необходимо использовать средства разработчика браузера. Отламывка настольной версии Excel с помощью командной строки.
Из командной строки запустите, чтобы следить за изменениями кода и восстанавливать npm run watch их.
Откройте второе окно командной строки (первое будет заблокировано во время запуска часов.)
Если вы хотите запустить надстройку в настольной версии Excel, запустите следующую команду.
npm run start:desktop
Или если вы предпочитаете запустить надстройку в Excel в Интернете выполнить следующую команду.
npm run start:web
Для Excel в Интернете необходимо также побокзагрузить надстройку. Выполните действия в Sideload надстройки, чтобы побокзагрузить надстройку. Затем продолжайте отладку в следующем разделе.
Откройте средства разработчика в браузере. Для Chrome и большинства браузеров F12 откроет средства разработчика.
В средствах разработчика откройте исходный файл скрипта кода (functions.js или functions.ts). Пользовательский код функций может быть расположен в конце файла.
В пользовательском коде источника функции нанесите точку разрыва, выбрав строку кода.
Если вам нужно изменить код, вы можете внести изменения в Visual Studio и сохранить изменения. Обновите браузер, чтобы увидеть загруженные изменения.
Команды для создания и запуска надстройки
Существует несколько задач сборки.
- npm run watch : сборки для разработки и автоматическое восстановление при сэкономлении исходных файлов
- npm run build-dev : сборки для разработки один раз
- npm run build : сборки для производства
- npm run dev-server : запускает веб-сервер, используемый для разработки
Вы можете использовать следующие задачи для начала отладки на рабочем столе или в Интернете.
Читайте также: