VBA оператори и вградени функции

Изявления на Excel VBA

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

Математически оператори

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

Дясната колона на таблицата показва приоритета на оператора по подразбиране при липса на скоби. Като добавите скоби към израз, можете да промените реда, в който се изпълняват операторите на VBA, както желаете.

Оператордействиеприоритет

(1 – най-висок; 5 – най-нисък)

^оператор за степенуване1
*оператор за умножение2
/оператор на разделяне2
Деление без остатък – връща резултата от деление на две числа без остатък. Например, 74 ще върне резултата 13
смелостОператор Modulo (остатък) – връща остатъка след деление на две числа. Например, 8 срещу 3 ще върне резултата 2.4
+Оператор на събиране5
-оператор за изваждане5

Низови оператори

Основният низов оператор в Excel VBA е конкатенационният оператор & (сливане):

Оператордействие
&оператор за конкатенация. Например изразът «А» и «Б» ще върне резултата AB.

Оператори за сравнение

Операторите за сравнение се използват за сравняване на две числа или низове и връщане на булева стойност от тип Булева (Истина или лъжа). Основните оператори за сравнение на Excel VBA са изброени в тази таблица:

Оператордействие
=По равно
<>Не е равно
<По-малко
>Больше
<=По-малко или равно
>=По-голямо или равно

Логическите оператори

Логическите оператори, подобно на операторите за сравнение, връщат булева стойност на тип Булева (Истина или лъжа). Основните логически оператори на Excel VBA са изброени в таблицата по-долу:

Оператордействие
Иоперация конюнкция, логически оператор И. Например изразът А и Б Ще се върне Вярно, Ако A и B и двете са равни Вярно, в противен случай връщане Фалшив.
OrОперация дизюнкция, логически оператор OR. Например изразът А или Б Ще се върне Вярно, Ако A or B са равни Вярно, и ще се върне Фалшив, Ако A и B и двете са равни Фалшив.
НеОперация отрицание, логически оператор НЕ. Например изразът Не А Ще се върне Вярно, Ако A еднакво Фалшив, или връщане Фалшив, Ако A еднакво Вярно.

Таблицата по-горе не изброява всички логически оператори, налични във VBA. Пълен списък с логически оператори може да бъде намерен в Центъра за разработчици на Visual Basic.

Вградени функции

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

функциядействие
Коремни мускулиВръща абсолютната стойност на даденото число.

Пример:

  • Корем (-20) връща стойността 20;
  • Корем (20) връща стойността 20.
ХрВръща ANSI знака, съответстващ на числовата стойност на параметъра.

Пример:

  • Chr (10) връща нов ред;
  • Chr (97) връща знак a.
ДатаВръща текущата системна дата.
Добавяне на датаДобавя определен интервал от време към дадената дата. Синтаксис на функцията:

DateAdd(интервал, число, дата)

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

аргумент интервал може да приеме една от следните стойности:

ИнтервалСтойност
гггггодина
qтримесечие
mмесец
yден от годината
dден
wден от седмицата
wwседмица
hчас
nминута
sвтори

Пример:

  • DateAdd(«d», 32, «01/01/2015») добавя 32 дни към датата 01/01/2015 и по този начин връща датата 02/02/2015.
  • DateAdd(«ww», 36, «01/01/2015») добавя 36 седмици към датата 01/01/2015 и връща датата 09/09/2015.
DateDiffИзчислява броя на посочените интервали от време между две дадени дати.

Пример:

  • DateDiff(«d», «01/01/2015», «02/02/2015») изчислява броя на дните между 01/01/2015 и 02/02/2015, връща 32.
  • DateDiff(«ww», «01/01/2015», «03/03/2016») изчислява броя на седмиците между 01/01/2015 и 03/03/2016, връща 61.
денВръща цяло число, съответстващо на деня от месеца в дадената дата.

Пример: Ден («29/01/2015») връща числото 29.

часВръща цяло число, съответстващо на броя часове в дадения момент.

Пример: Час («22:45:00») връща числото 22.

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

Пример:

  • InStr(1, „Ето думата за търсене“, „дума“) връща числото 13.
  • InStr(14, „Ето думата за търсене и ето друга дума за търсене“, „дума“) връща числото 38.

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

IntВръща цялата част от даденото число.

Пример: Int (5.79) връща резултат 5.

IsdateВръщане Вярноако дадената стойност е дата, или Фалшив – ако датата не е.

Пример:

  • IsDate(«01 г.») Постъпления Вярно;
  • IsDate (100) Постъпления Фалшив.
IsErrorВръщане Вярноако дадената стойност е грешка, или Фалшив – ако не е грешка.
ЛипсваИмето на незадължителен аргумент на процедурата се предава като аргумент на функцията. Липсва Постъпления Вярноако не е предадена стойност за въпросния аргумент на процедурата.
IsNumericВръщане Вярноако дадената стойност може да се третира като число, в противен случай връща Фалшив.
LeftВръща зададения брой знаци от началото на дадения низ. Синтаксисът на функцията е следният:

Left(строка, длина)

където линия е оригиналният низ и Дължината е броят знаци за връщане, като се брои от началото на низа.

Пример:

  • Ляво (“abvgdejziklmn”, 4) връща низа “abcg”;
  • Ляво (“abvgdejziklmn”, 1) връща низа „a“.
LenВръща броя знаци в низ.

Пример: Len („abcdej“) връща числото 7.

месецВръща цяло число, съответстващо на месеца на дадената дата.

Пример: Месец («29/01/2015») връща стойността 1.

СреденВръща определения брой знаци от средата на дадения низ. Синтаксис на функцията:

Средно(линия, Начало, Дължината)

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

Пример:

  • Среден ("abvgdejziklmn", 4, 5) връща низа “къде”;
  • Среден ("abvgdejziklmn", 10, 2) връща низа „cl“.
минутаВръща цяло число, съответстващо на броя минути в даденото време. Пример: Минута («22:45:15») връща стойността 45.
СегаВръща текущата системна дата и час.
правВръща зададения брой знаци от края на дадения низ. Синтаксис на функцията:

точно(линия, Дължината)

Къде линия е оригиналният низ и Дължината е броят знаци за извличане, като се брои от края на дадения низ.

Пример:

  • Вдясно («abvgdezhziklmn», 4) връща низа “clmn”;
  • Вдясно («abvgdezhziklmn», 1) връща низа „n“.
ВтороВръща цяло число, съответстващо на броя секунди в даденото време.

Пример: Второ («22:45:15») връща стойността 15.

плВръща корен квадратен от числовата стойност, предадена в аргумента.

Пример:

  • Sqr (4) връща стойността 2;
  • Sqr (16) връща стойността 4.
ВремеВръща текущото системно време.
UboundВръща горния индекс на указаното измерение на масива.

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

годинаВръща цяло число, съответстващо на годината на дадената дата. Пример: Година («29/01/2015») връща стойността 2015.

Този списък включва само селекция от най-често използваните вградени функции на Excel Visual Basic. Изчерпателен списък с функции на VBA, налични за използване в макроси на Excel, може да бъде намерен в Центъра за разработчици на Visual Basic.

Оставете коментар