Работа с VBA на процедури

Процедура - поредица от VBA оператори, намиращи се в модула VBA, достъпът до които могат да бъдат достъпни с помощта на VBE. Модулът може да включва всякакъв брой процедури. [1] Някои процедури са аргументи. Аргумент - е информацията, използвана от процедурата, по време на изпълнение. рутинни аргументи са много сходни с аргументите, използвани функции на Excel.

Работа с VBA на процедури

Фиг. 1. Стартирайте процедурата от Visual Basic Editor

Изтеглете бележка в Word или PDF

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

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

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

Sub (задължително ключова дума). Той бележи началото на процедурата.

Name. Всяко валидно име процедура.

Инструкции (по желание). VBA правилни инструкции.

Exit Sub (по избор на оператор). Той причинява незабавно излизане от процедурата преди неговото сключване.

End Sub (задължително оператор). Това показва края на процедурата.

Извършване на процедури

Основните методи на изпълнение или на повикване, процедура VBA.

1-ви начин. С екип от хода на подготовката> Run Sub / UserForm (Run -> Run процедура / потребител форма, фигура 1.) VBE. Алтернативата - да натиснете или използвайте бутона Run Sub / UserForm лентата с инструменти Standard (Стандарт, фиг. 2).

Работа с VBA на процедури

Фиг. 2. Бутон Run Sub / UserForm на панела на Standard VBE

2-ри път. От диалоговият прозорец Макрос за Excel (фиг. 3). За да се покаже на прохода в менюто Developer -> Macro или натиснете Alt + F8.

Работа с VBA на процедури

Фиг. 3. В диалоговия прозорец Macro в Excel

Третият метод. С помощта на комбинация от клавиши и възлага на основните процедури (ако процедурата се определя комбинация от клавиши). Ако по време на процедурата не е от ключово значение е възложено да направи тя никога не е твърде късно. Отваряне на макроса. както е описано по-горе, да изберат процедурата, в името на полето за Macro. щракнете върху Настройки. и въведете буквата в Shortcut кутията за ключове (фиг. 4).

Работа с VBA на процедури

Фиг. 4. процедура по предоставяне клавиши

4-ил начин. Кликването върху него или който и да е фигура лист. процедура (фиг. 5) трябва да бъде зададена на този бутон или фигура.

Работа с VBA на процедури

Фиг. 5. Назначаване фигура макро

5-ил начин. От друга процедура. Sub и Function процедура да се обадите на други процедури.

6-ил начин. Използване на потребителски контрол елемент, разположен на лентата. Освен това, вградените контроли лента може да бъде "препрограмирани" на макро покана за изпълнение.

7-ил начин. От контекстното меню на потребителя.

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

9-ил начин. Debug прозорец (Незабавно) в VBE. Трябва само да въведете името на процедурата, изберете всички необходими аргументи и натиснете .

Предаването на параметри процедури

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

Има два начина за прехвърляне аргументи процедура.

В следващия пример, процедурата на Метод аргумент се предава чрез препратка (по подразбиране). След процедура Главна MyValue присвоява стойност от 10, той се позовава на процедура и предава MyValue Процес като аргумент. Процедура Process умножава стойността на своето твърдение (името YourValue) в 10. В края на процедура процес продължава изпълнение Основна процедура и функция MsgBox показва MyValue Онлайн: 100.

Sub Main ()
Дим MyValue Като цяло число
MyValue = 10
Call Process (MyValue)
MsgBox MyValue
End Sub

Под Process (YourValue)
YourValue = YourValue * 10
End Sub

Ако искате наречената процедура не променя променливи, получени като аргументи, редактирате списъка с аргументи за нарича процедурата, така че аргументите се предават по стойност, а не чрез препратка. За да направите това, добавете аргумента на ByVal ключова дума. Тогава наречената процедура ще се проведе на копие на предаваните данни, а не на самите данни. Следващата процедура, например, промените, които се случват с YourValue процес в процедурата не влияят върху стойността на променливата в процедурата на Главна MyValue. В резултат на това MsgBox функцията показва 10, вместо 100.

Под Process (ByVal YourValue)
YourValue = YourValue * 10
End Sub

Работа грешка

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

  • Не обръщайте внимание на грешката и да позволи на VBA да продължи програмата. След това можете да анализираме обект заблуждават, за да разберете какво е възникнала грешката, и, ако е необходимо, се предприемат мерки за предотвратяване.
  • Отиди в специален раздел на код, за да се справят с грешки, за извършване на необходимите действия. В този раздел се въвежда в края на процедурата, и се обозначава специален знак.

Програма продължава да тече, след като възникне грешка, че е необходимо да поставите в началото на процедурата, при грешка Resume оператор Next. Ако възникне грешка, можете да използвате Err обекта, за да се определи неговия номер. Например, на фиг. 6 илюстрира процедура, която присвоява име Listu2 Baseline. Въпреки това, книгата не може да бъде Lista2. В този случай, се появява съобщение за грешка.

Работа с VBA на процедури

Фиг. 6. процедура за възлагане на името на работния лист Excel, обработка на грешки

MsgBox Err
MsgBox Err.Number

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

На Error GoTo ErrorHandler

Следната процедура избира всички клетки в настоящите диапазон, съдържащ формули, които връщат номер. Процедурата също използва изявлението Ако за определяне на резултата: ако е станала грешка. Изявление На Error GoTo 0 възстановява нормалната обработка на грешки, преди да излезе от процедурата.

Под SelectFormulas2 ()
На Грешка Resume Следваща
Selection.SpecialCells (xlFormulas, xlNumbers) .Изберете
Ако Err.Number = 1,004 Тогава MsgBox "Той открил клетки с формули."
На Error GoTo 0
# '... [код]
End Sub

Ако броят собственост на обекта Err не е равно на 0, възниква грешка. С помощта на изявлението Ако се проверява не е равно ли Err.Number собственост на 1004, и ако е така, показва прозорец със съобщение. В този пример, проверка на кода се извършва за откриване на грешката с определения брой.

Следният код пример показва обработка на грешки чрез превключване на етикета.

Под ErrorDemo ()
На Error GoTo Хендлър
Selection.Value = 123
Exit Sub
Handler:
MsgBox "Не можеш да се придаде стойност на избрания диапазон."
End Sub

Процедурата се опитва да придаде стойност на текущо избрания обект. Ако възникне грешка (например подчертано група от клетки или лист е защитено), операторът на задача се връща съобщение за грешка. На изявление Грешка уточнява Хендлър се движи към индекса в случай на грешка. Имайте предвид, че преди етикет се използва за излизане Sub изявление. програма за обработка, не се изпълнява, ако не е имало грешки.