VBA - Отваряне и използване на редактора на Visual Basic (VBE) в Excel

Този урок ще ви покаже как да отворите и програмирате в редактора на Visual Basic във VBA.

Отваряне на редактора на Visual Basic

Има няколко начина за достъп до редактора на Visual Basic (VBE) в Excel.

Натиснете Alt + F11 на клавиатурата си.

ИЛИ

Щракнете Изглед> Макроси> Преглед на макроси. От тук можете редактиране съществуващ макрос или Създайте нов. И двете опции отварят VB Editor.

ИЛИ

Разработчик> Visual Basic

Забележка: Ако не виждате лентата за програмисти, ще трябва да я активирате.

За да активирате лентата за програмисти

Кликнете върху Файл раздела в лентата и слезте до Настроики. В Персонализирайте лентата опции, маркирайте Разработчик квадратче за отметка. Това е изключено по подразбиране, така че ще трябва да го включите, за да видите раздела на лентата.

Щракнете Добре.

Разделът Developer ще се появи на главната лента. Щракнете върху Visual Basic в началото на лентата за достъп до редактора на Visual Basic.

Разбиране на VBE екрана

Екранът VBE е показан на графиката по -долу.

Проекторът на проекта

Project Explorer ви позволява да видите как е организиран проектът, в който работите. Можете да видите колко модули и формуляри се съхраняват в проекта и можете да навигирате между тези модули и формуляри. Модул е ​​мястото, където кодът във вашата работна книга се съхранява, когато записвате макрос, той ще се съхранява в стандартен модул - който по подразбиране ще се нарича „Модул 1 '.

Всеки от работните листове във вашия Excel файл също има модул зад себе си, както и самата работна книга. Когато вмъкнете нов лист в работната книга през главния екран на Excel, ще видите, че в Project Explorer се появява допълнителен модул от листа.

Щракнете двукратно върху модул, за да преминете към кода за този модул.

Можете също да кликнете върху менюто Window на лентата с инструменти и да изберете модула там, за да преминете към кода за този модул.

Тип модули

Модулите са организирани в 5 различни типа.

  1. Стандартни модули - по -голямата част от кода ви ще отиде в този тип модули. Когато записвате макрос, той се поставя в стандартен модул. Когато пишете обща процедура, която да се използва в работната ви книга, тя също обикновено влиза в стандартен модул.
  2. Модули на работна книга - този модул съдържа кода, който е уникален за тази индивидуална работна книга. Повечето от кода в този тип модули са известни като СЪБИТИЯ. Може да възникне събитие, когато работна книга е отворена или затворена, например. Модулът може също да съдържа код, написан от вас и използван от събитията.
  3. Листови модули - този модул съдържа кода, който е уникален за този отделен лист. Те могат да възникнат, когато се кликне върху лист например ( Щракнете върху Събитие), или когато променяте данни в клетка. Този модул може също да съдържа код, написан от вас и извикан от събитията.
  4. Формулярни модули - това е модулът зад персонализирана форма, която можете да създадете. Например можете да създадете формуляр за съхраняване на подробности за фактура, с бутон OK, кодът зад бутона (събитието при щракване) съдържа кода, който ще се изпълнява при щракване върху бутона.
  5. Класови модули - този модул се използва за създаване на обекти по време на изпълнение. Модулът за клас се използва от напреднали VBA програмисти и ще бъде разгледан на по -късен етап.

Вмъкване на модул или формуляр във вашия код

За да вмъкнете нов модул във вашия код, щракнете върху Вмъкване опция в лентата с менюта и щракнете Модул.

Или кликнете върху Вмъкване на модул бутон, който ще намерите на стандартната лента.

За да вмъкнете нов потребителски формуляр във вашия код, изберете UserForm опция.

Нов потребителски формуляр ще се появи в Project Explorer и ще бъде показан в прозореца за код вдясно.

Можете също да вмъкнете a Модул клас

Модул клас се използва за вмъкване на обекти във вашия VBA проект.

Премахване на модул или формуляр от Project Explorer

Щракнете с десния бутон върху модула или формуляра, който искате да премахнете, за да се покаже менюто с кратки пътища с десен бутон.

Щракнете Премахване (в такъв случай UserForm1… )

ИЛИ

Кликнете върху Файл меню, след което щракнете върху Премахване (UserForm1).

Ще се появи предупредително поле с въпрос дали искате да експортирате формуляра или модула, преди да го премахнете. Експортирането на формуляра или модула ви позволява да го запишете като отделен файл за използване в друг проект на Excel по друго време.

По -често, когато не премахвате модул или формуляр, това е така, защото нямате нужда от него, така че щракнете върху Не.

Прозорецът със свойства

Ще видите прозореца със свойства под Project Explorer. Може да се наложи да включите това.

Натиснете F4 или щракнете Изглед, Прозорец за свойства.

Прозорецът със свойства ви позволява да видите свойствата на конкретния модул или формуляр, който е избран в Project Explorer. Когато работите в модули, можете да използвате прозореца със свойства, за да промените името на модула. Това е единственото свойство, достъпно за модул. Въпреки това, когато работите с формуляри, ще има много повече налични свойства и прозорецът Свойства след това се използва широко за контрол на поведението на формулярите и контролите, съдържащи се във формуляра.

Когато записвате макрос, той автоматично се поставя в стандартен модул. Модулът ще носи името „Модул 1 ' и всеки код, който се съдържа в този модул, е достъпен за използване в целия ви проект. Трябва да преименувате модула си на нещо важно, което би улеснило намирането на кода ви, ако добавите няколко модула към проекта.

Можете също да преименувате формулярите си.

Ако сте преименували листа в Excel, името на листа ще се показва като името на листа в скоби след Sheet1.

Ако искате да промените името на модула зад листа, можете да го промените по същия начин, по който промените името на модула и потребителската форма - чрез промяна на свойството Name в прозореца Properties.

Уморени ли сте от търсене на примери за VBA код? Опитайте AutoMacro!

Прозорецът на кода

Кодният прозорец ви показва подпроцедурите и функциите, които се съдържат във вашите модули - той ви показва действителния код. Когато записвате макрос, за вас ще бъде създадена подпроцедура. Ако добавите клавиш за кратък път към макроса, той ще се покаже като коментар в макроса, за да ви уведоми какъв е клавишът за бърз достъп, който сте присвоили на макроса.

В горната част на кодовия прозорец има две комбинирани полета. Те ви позволяват да видите върху кой обект (ако има такъв) в модула, върху който може да работите, и по коя процедура може да работите.

В горния пример не работим върху нито един обект - по този начин това е зададено като общо, но работим в рамките на процедурата Gridlines.

Ако имахме повече от една процедура в този модул, бихме могли да използваме горното комбинирано поле, за да преминем към другите процедури.

Разбиране на Кодекса

Има 2 вида процедури - Подпроцедури и Функционални процедури.

Подпроцедури

Макрорекордерът може да записва само подпроцедури. Подпроцедурата прави нещата. Те извършват действия, като например форматиране на таблица или създаване на обобщена таблица, или в примера на мрежата, промяна на настройките за изглед на активния ви прозорец. По -голямата част от написаните процедури са подпроцедури. Всички макроси са подпроцедури.

Подпроцедурата започва с a Под изявление и завършва с an End Sub изявление. Името на процедурата винаги е последвано от скоби.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = FalseEnd Sub

Функционални процедури

Процедура за функция връща стойност. Тази стойност може да бъде единична стойност, масив, диапазон от клетки или обект. Функциите обикновено извършват някакъв вид изчисления. Функциите в Excel могат да се използват с съветника за функции или да се извикват от подпроцедури.

123 Функция килограми (паунда като двойно)Килограми = (паунда/2.2)Крайна функция

Тази функция може да се използва в диалоговия прозорец Вмъкване на функция в Excel за преобразуване на лири в килограми.

Създаване на нова процедура

Преди да създадете новата си процедура, уверете се, че сте в модула, в който искате да съхранявате процедурата. Можете да създадете нова процедура, като щракнете върху менюто Вмъкване, Процедура;

или можете да кликнете върху иконата в лентата с инструменти

Ще се появи следният диалогов прозорец

  1. Въведете името на новата си процедура в полето за име - това трябва да започва с буква от азбуката и може да съдържа букви и цифри и да бъде максимум 64 знака.
  2. Можете да имате a Подпроцедура, а Функционална процедура или а Имот процедура. (Свойствата се използват в модулите на клас и задават свойства за ActiveX контроли, които може да сте създали).
  3. Можете също да направите обхвата на процедурата Обществен или Частни. Ако процедурата е публична (по подразбиране), тогава тя може да се използва от всички модули в проекта, докато ако процедурата е частна, тя ще може да се използва само от този модул.
  4. Можете да декларирате локални променливи в тази процедура като статика (това е свързано с обхвата на променливата и прави променливата на ниво локална процедура публична за целия модул). Няма да използваме тази опция.

Когато попълните всички съответни данни, кликнете върху Добре.

След това въвеждате кода си между инструкциите Sub и End Sub.

АЛТЕРНАТИВНО - можете да въведете Sub и End Sub изрази във вашия модул точно както е показано по -горе. Не е необходимо да поставяте думата Public пред думата sub - ако тази дума е пропусната, всички процедури в модула автоматично се приемат за публични.

След това пишете Под и след това името на вашата процедура, последвано от скоби.

т.е.:

1 Подтест ()

The End Sub изявлението ще се появи автоматично.

VBA програмиране | Code Generator работи за вас!

Писане на код, който е лесен за разбиране и навигация

Добавяне на коментари

Вземете навика да поставяте коментари в кода си, за да си припомните на по -късен етап функционалността на кода.

Можете да вмъкнете коментар в кода си, но да напишете апостроф на клавиатурата или да включите лентата с инструменти за редактиране и да използвате бутона за коментар, който се появява на тази лента с инструменти.

Щракнете с десния бутон върху лентите с инструменти.

Изберете Редактиране.

Щракнете върху бутона за коментар, за да вмъкнете коментар във вашия код.

ЗАБЕЛЕЖКА: Обикновено използвате бутона за блокиране на коментари само когато имате няколко реда код, които искате да коментирате (а не да изтриете). По -лесно е за един коментар да се използва апостроф.

Отстъп

Добър навик, в който да влезете, е да отстъпите кода си, за да го прочетете лесно и да видите различните части на кода.

В зависимост от логиката на вашия код може да има много нива на отстъп.

UpperCase срещу LowerCase

VBA настройва целия код към правилния регистър, така че ако въведете ВСИЧКИ с ГЛАВНИ СЛОВА или всички с малки букви, той ще коригира отново вашия код, за да бъде в правилен регистър!

VBA програмиране | Code Generator работи за вас!

Автодовършване

Когато коригирате кода си, ще забележите, че VBA се опитва да ви помогне, като предлага кода, който можете да въведете. Това е известно като автодовършване.

Грешка при улавяне и отстраняване на грешки

Има 4 вида грешки, които могат да възникнат, когато пишете VBA код - Синтаксични грешки, Грешки при компилиране, Грешки по време на изпълнение и Логически грешки.

Синтаксични грешки

Те възникват, когато кодът е написан неправилно. Това до голяма степен се предотвратява от VBA чрез включване на опцията за проверка на синтаксиса. Обикновено това е включено по подразбиране, но ако е изключено, включете го, като отидете на Инструменти, Настроики и щракнете Автоматична проверка на синтаксиса.

Ако въведете кода неправилно (например като изключите нещо, което трябва да бъде в кода), докато пишете кода, ще се появи съобщение, което ви дава възможност да промените кода.

Грешки при компилация

Това се случва, когато нещо липсва в кода, което пречи на изпълнението на кода. Грешката не се появява, когато пишете кода, но възниква, когато се опитате да стартирате кода.

VBA програмиране | Code Generator работи за вас!

Грешки по време на работа

Това се случва, когато стартирате кода и синтаксисът и компилацията са правилни, но се случва нещо друго, за да попречи на кода да работи правилно.

В този случай Sheet4 не съществува. Това съобщение за грешка е по -полезно от съобщенията за грешки при компилирането, тъй като ви дава възможност да отстраните грешки в кода и да видите защо не работи.

Щракнете Отстраняване на грешки. Кодът ще спре при грешката и ще маркира грешката в жълто, което ви позволява да коригирате грешката си.

Променете лист 4 в лист 2 (тъй като лист 2 съществува и лист 4 не съществува).

Натиснете F5 или щракнете върху продължи бутон в лентата с инструменти.

Логически грешки

Това са най -трудните за намиране. В техния случай кодът е написан правилно, но действителната логика на кода е погрешна, така че може да не получите желания резултат от кода. За логическите грешки улавянето на грешки е от съществено значение.

Има 2 вида капани за грешки

При грешка Отидете на

Следният код е за отваряне на диалоговия прозорец File Open - ще ни даде грешка, ако потребителят кликне Отказ.

Когато стартирате кода, се появява диалоговият прозорец File Open.

Когато кликнете върху „Отказ“, грешката ще възникне.

Следният капан за грешки ще продължи кода до функцията за изход на кода и съобщение за връщане.

Това използва On Error GoTo за излизане от функцията.

Когато стартирате кода и щракнете върху отмяна, ще се появи полето със съобщение.

На грешка възобновяване следващо

Ако поставите На грешка възобновяване следващо Декларация във вашия код, редът, който съдържа грешката, ще бъде игнориран и кодът ще продължи.

Например, ако потребителят кликне върху Отказ в кода по-долу, кодът няма да ви даде грешка по време на изпълнение, той просто ще приключи, без кодът да направи нещо допълнително.

Има моменти, когато това е много полезно, но може да бъде и много опасно при някои обстоятелства, тъй като не връща съобщение защо сте получили грешка.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave