Операторы VBA: арифметические, логические, сравнения, присвоения
Оператор — это наименьшая способная выполняться единица кода VBA. Оператор может объявлять или определять переменную, устанавливать параметр компилятора VBA или выполнять какое-либо действие в программе.
Арифметических операторов в VBA всего 7. Четыре стандартных: сложение (+), вычитание (-), умножение (*), деление (/) и еще три:
- возведение в степень (^), например 2^3 = 8;
- целочисленное деление (\). Делит первое число на второе, отбрасывая (не округляя) дробную часть. Например, 5\2 = 2;
- деление по модулю (Mod). Делит первое число на второе, возвращая только остаток от деления. Например, 5 Mod 2 = 1.
Оператор присвоения в VBA — знак равенства. Можно записывать так: Let nVar = 10
Во втором случае не путайте знак равенства с оператором равенства.
Выражение nVar = 10 значит «присвоить переменной nVar значение 10», а если строка выглядит так:
If (nVar = 10) то это значит «если значение переменной nVar равно 10».
Если переменной нужно назначить объект, то делается это другими способами.
- равенство (=), например, If (nVar = 10);
- больше, чем и меньше, чем (> и 10) ;
- больше или равно и меньше или равно (>= и ≤), например, If (nVar >= 10) ;
- не равно (), например, If (nVar10) ;
- сравнение объектов (Is). Определяет, ссылаются объектные переменные на тот же объект или на разные, например, If (obj1 is obj2) ;
- подобие (Like). Сравнивает строковый объект с шаблоном и определяет, подходит ли шаблон.
Операторы сравнения всегда возвращают true или false — true, если утверждение истинно, и false, если ложно.
- при сравнении строковых значений регистр учитывается;
- пробелы в строковых значениях также учитываются;
- при сравнении текстовых строк на больше/меньше по умолчанию сравниваются просто двоичные коды символов — какие больше или меньше. Если нужно использовать тот порядок, который идет в алфавите, то можно воспользоваться командой
Чуть подробнее про оператор Like. Общий его синтаксис выглядит как
При этом Выражение1 — любое текстовое выражение VBA, а Выражение2 — шаблон, который передается оператору Like. В этом шаблоне можно использовать специальные подстановочные символы
Любой символ (только один), кроме приведенных в списке
Очень часто при проверке нескольких условий используются логические операторы:
- AND — логическое И, должны быть истинными оба условия;
- OR — логическое ИЛИ, должно быть истинным хотя бы одно из условий;
- NOT — логическое отрицание, возвращает TRUE, если условие ложно;
- XOR — логическое исключение. В выражении E1 XOR E2 возвращает TRUE, если только E1 = TRUE или только E2 = TRUE, иначе — FALSE;
- EQV — эквивалентность двух выражений, возвращает TRUE, если они имеют одинаковое значение;
- IMP — импликация, возвращает FALSE, если E1 = TRUE и E2 = FALSE, иначе — TRUE.
Помнить нужно про AND, OR, NOT , остальные логические операторы используются редко.
Почти в любой программе VBA используются операторы конкатенации. В VBA их два — + или &. Рекомендуется всегда использовать &, потому что:
[expert_bq id=»1570″]Функция записи макросов Excel используется не столько для создания хорошего кода, сколько для поиска названий необходимых объектов, методов и свойств. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Обратите внимание, что данная программа выделяет ячейки. Однако в VBA для работы с объектом не обязательно его выделять. Данную процедуру можно заменить значительно более простой — применить метод Сору, который использует аргумент, представляющий адрес места вставки копируемого диапазона.VBA пуст.
VBA-тип Date является типом последовательных дат. VBA использует отрицательные числа для представления дат ранее базовой даты (30 декабря 1899), и положительные — для дат после базовой. Число 0 представляет саму дату 30.12.1899.
Что делает функция ISEMPTY в VBA?
Часто пустые ячейки мешают нам эффективно работать на листе. Поиск пустых ячеек не самый сложный, но если пустые ячейки скрывают их в середине данных, то их поиск требует определенных усилий.
Чтобы найти пустые ячейки в Excel, у нас есть функция «ISBLANK» в качестве функции рабочего листа, но в VBA она называется «ISEMPTY».
Это работает аналогично функции рабочего листа «ПУСТО». Теперь взгляните на приведенную ниже формулу функции «ISEMPTY».
Как мы видим на изображении выше, он возвращает результат в виде логического значения, т.е. TRUE или FALSE.
[expert_bq id=»1570″]результат возведения основания натурального логарифма в указанную степень Log Натуральный логарифм Rnd Случайное число из интервала 0,1. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Тип данных относят к самым фундаментальным понятиям любого языка программирования. Тип данных определяет множество допустимых значений, которое может принимать величина (переменная или константа), и множество действий, которые можно выполнить с этой величиной.Урок 2 по теме «VBA»
При выполнении двоичного сравнения строковой информации VBA использует бинарный эквивалент числа для каждого символа. Такой метод сравнения называется двоичным или бинарным и является методом сравнения по умолчанию.
Функция IF OR VBA с циклами (дополнительно)
Как только вы поймете формулу, попробуйте использовать ее с большим количеством ячеек. В случае большего количества ячеек мы не можем написать ни строчки кода, поэтому нам нужно использовать циклы VBA Используйте циклы VBA Цикл VBA в Excel — это инструкция для запуска кода или многократного повторения действия. читать далее .
Для приведенного выше набора данных я добавил еще несколько строк.
Теперь, где бы мы ни были ссылка на ячейку Ссылка на ячейку Ссылка на ячейку в Excel ссылается на другие ячейки на ячейку, чтобы использовать ее значения или свойства. Например, если у нас есть данные в ячейке A2 и мы хотим использовать их в ячейке A1, используйте =A2 в ячейке A1, и это скопирует значение A2 в A1. читать далее , измените текущее число и соедините с ним переменную «k».
Например, Диапазон («D2»). Значение должно быть Диапазон («D» и k). Значение
[expert_bq id=»1570″]Обычно операции сравнения используются в операторах организации циклов для принятия какого-либо решения о дальнейшем ходе выполнения операций. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Давайте перейдем к практике и вернемся к примеру, который мы использовали в уроке с переменными. Цель этой процедуры была в том, чтобы открыть диалоговое окно, которое бы содержало значение из строки, указанного в ячейке F5 :Работа с диапазонами в VBA
В VBA существует несколько функций для обработки строк. Mid(вырезка), Len (длина), InStr(поиск), Left (вырезка слева), Right (вырезка справа), Trim (убирает пробелы слева и справа), StrComp (сравнение строк) и др.
Определение длины строки
Длину строки, как правило, надо знать при форматировании сообщений для пользователя или при форматировании строковых данных, вводимых процедурой в рабочий лист Excel или документ Word. VBA для этих целей использует функцию Len. В приведенным ниже листинге между знаками круглых скобок и словом присутствует по два пробела.
Операторы VBA: арифметические, логические, сравнения, присвоения — Справочник VBA
- vbCr – символ возврата каретки. Эквивалент Chr(13)
- vbLf – символ смещения на одну строку. Эквивалент Chr(10)
- vbCrLf – символ возврата каретки+смещения на одну строку. Эквивалент Chr(13)+ Chr(10)
- vbTab – символ табуляции. Эквивалент Chr(9)
Следующая процедура удаляет все пустые строки в активном рабочем листе. Она достаточно эффективна, так как не проверяет все без исключения строки, а просматривает только строки в так называемом «используемом диапазоне», определяемом с помощью свойства UsedRange объекта Worksheet.