VBA Excel. Арифметические операторы

    Перечень арифметических операторов, использующихся в VBA Excel. Их предназначение, особенности вычислений, приоритет в выражениях.

    Обзор арифметических операторов

    Операторы Описание
    Оператор «+» Сложение двух чисел или объединение двух строк (для объединения строк предпочтительнее использовать оператор «&»)
    Оператор «-» Вычитание (определение разности двух чисел) или отрицание (отражение отрицательного значения числового выражения: -15, -a)
    Оператор «*» Умножение двух чисел
    Оператор «/» Деление двух чисел (деление на 0 приводит к ошибке)
    Оператор «^» Возведение числа в степень
    Оператор «\» Целочисленное деление
    Оператор «Mod» Возвращает остаток от деления двух чисел

    Особенности операторов «\» и «Mod»

    Перед вычислением целочисленного результата или остатка от деления двух чисел делимое и делитель округляются. Причем, используется бухгалтерское округление:

    • -3.5 => -4
    • -2.5 => -2
    • -1.5 => -2
    • -0.5 => 0
    • 0.5 => 0
    • 1.5 => 2
    • 2.5 => 2
    • 3.5 => 4

    Следующие строки вызовут ошибку «Division by zero» («Деление на ноль»):

    Чтобы избежать ошибок, когда требуется общепринятое математическое округление, округляйте делитель и делимое с помощью оператора WorksheetFunction.Round.

    Приоритет арифметических операторов

    Приоритет определяет очередность выполнения операторов в одном выражении. Очередность выполнения арифметических операторов в VBA Excel следующая:

    1. «^» – возведение в степень;
    2. «» – отрицание;
    3. «*» и «/» – умножение и деление;1
    4. «\» – целочисленное деление;
    5. «Mod» – остаток от деления двух чисел;
    6. «+» и «» – сложение и вычитание.2

    1 Если умножение и деление выполняются в одном выражении, то каждая такая операция выполняется слева направо в порядке их следования.
    2 Если сложение и вычитание выполняются в одном выражении, то каждая такая операция выполняется слева направо в порядке их следования.

    Для переопределения приоритета выполнения операторов в VBA Excel используются круглые скобки. Сначала выполняются операторы в скобках, затем операторы вне скобок. Внутри скобок приоритет операторов сохраняется.

    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    3 комментария для “VBA Excel. Арифметические операторы”

    1. Никак не могу догнать, почему 10 Mod 3 получается 1?
      10/3=3,33333333333333
      от 3,33333333333333 отбрасываем 3 остается 0,33
      Если округлить Round(0.33), то получается 0 а не 1.
      Есть объяснение? Спасибо!

      1. Евгений

        Привет, Собир!
        Оператор Mod рассчитывает остаток от деления также, как мы при делении чисел столбиком:
        10/3=3 ⇒ 3*3=9 ⇒ 10-9=1
        А 0,33… – это уже результат деления остатка 1 на 3

    2. Вячеслав

      >Никак не могу догнать, почему 10 Mod 3 получается 1?
      Собир, по правилам математики.
      10 / 3 = 3 целых и остаток от деления 1, то есть 3 * 3 + 1 = 10

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

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.