Vba excel по модулю переменной

Excel VBA MOD Operator

In VBA, MOD is the same as the application in mathematics. For example, when we divide a number by its divisor, we get a reminder from that division. This function one may use to give us that remainder from the division. It is not a function in VBA. Rather, it is an operator.

MOD is nothing but MODULO, a mathematical operation. It is the same as the division, but the result is slightly different where division takes the divided amount. But, MOD takes the remainder of the division. For example: If you divide 21 by 2 divisions, the result is 10.50 by MOD is the remainder of the division, i.e., 1. (Number 2 can divide only 20, not 21, so the remainder is 1).

In normal Excel, it is a function. But in VBA, it is not a function. Instead, it is just a mathematical operator. In this article, we will look into this operator in detail.

Table of contents
  • Excel VBA MOD Operator
    • Syntax
    • How to use MOD in VBA?
      • Example #1
      • Example #2
    • Excel MOD Function vs. VBA MOD Operator
    • Things to Remember
    • Recommended Articles

VBA-MOD-Function

You are free to use this image on your website, templates, etc, Please provide us with an attribution linkArticle Link to be Hyperlinked
For eg:
Source: VBA MOD (wallstreetmojo.com)

Syntax

To remind you, this is not a function to have syntax. But, for our reader’s understanding, let me put it in the word.

Number 1 MOD Number 2 (Divisor)

Number 1 is nothing, but what is the number we are trying to divide?

Number 2 is the divisor, i.e., we will divide Number 1 by this divisor.

MOD is the result given by Number 1 / Number 2.

How to use MOD in VBA?

You can download this VBA MOD Function Template here – VBA MOD Function Template

Example #1

Follow the below steps to write the code.

Step 1: Create a macro name.

Code:

Sub MOD_Example1()

End Sub

Step 2: Define one of the variables as “Integer.”

Code:

Sub MOD_Example1()

Dim i As Integer

End Sub

Step 3: Now perform the calculation as “i = 20 MOD 2.”

As we said in the beginning, MOD is an operator, not a function. So, we have used the word MOD like how we enter a plus (+).

Code:

Sub MOD_Example1()
  Dim i As Integer
  i = 21 Mod 2

End Sub

Step 4: Now, assign the value of “I” to the message box.

Code:

Sub MOD_Example1()
  Dim i As Integer

  i = 21 Mod 2
  MsgBox i

End Sub

Step 5: Run the code message box that will show the value of “I.”

VBA MOD Example 1

Example #2

The MOD function in VBA always returns an integer value, i.e., without decimals if you supply the number in decimals. For example, look at the below code.

Code:

Sub MOD_Example2()
  Dim i As Integer
   
   i = 26.25 Mod 3
  MsgBox i

End Sub

Divisor 3 can divide 24, so the remainder here is 2.25. But the MOD operator returns the integer value, i.e., 2, not 2.25.

VBA MOD Example 2

Now, we will modify the number to 26.51 and see the difference.

Code:

Sub MOD_Example2()
  Dim i As Integer

   i = 26.51 Mod 3
  MsgBox i

End Sub

We will run this code and see what the result is.

Example 2-1

We have got zero as the answer. We got zero because VBA roundsRound function in VBA is a mathematical function that rounds up or down the given number to the specific set of decimal places specified by the user to ease calculation.read more the numbers like our bankers do, i.e., it will round up any decimal point greater than 0.5 to the next integer value. So, in this case, 26.51 is rounded up to 27.

Since 3 can divide the 27 by 9, we will not get any remainder values, so the value of i equals zero.

Now, we will supply the divisor value also in decimal points.

Code:

Sub MOD_Example2()
  Dim i As Integer

  i = 26.51 Mod 3.51
  MsgBox i

End Sub

Step 6: Run this code and see what the result is.

VBA MOD Example 2-2

We got 3 as the answer because 26.51 rounded up to 27, and the divisor value 3.51 will be rounded up to 4.

So, if you divide 27 by 4, the remainder is 3.

Excel MOD Function vs. VBA MOD Operator

Step 1: Now, look at the difference between excel and VBA MOD operator. We have a value of 54.24. The divisor value is 10.

Example 3

Step 2: If we apply the MOD function, we will get the result of 4.25.

Example 3-1

Step 3: But if you do the same operation with VBA, we will get 4 as the remainder, not 4.25.

Code:

Sub MOD_Example2()
   Dim i As Integer

   i = 54.25 Mod 10
   MsgBox i

End Sub

Step 4: Run this code and see what the result is.

VBA MOD Example 3-2

Things to Remember

  • It is not a function, but it is an arithmetic operator.
  • It is roundup and rounddown decimal values, unlike our MOD function in the worksheet function.

Recommended Articles

This article has been a guide to VBA MOD Function. Here, we learned how to use the modulo, practical examples, and a downloadable Excel template. Below you can find some useful Excel VBA articles: –

  • VBA Return Statement
  • VBA RoundUp
  • VBA Cell References
  • What is VBA Range?
  • VBA Randomize
> помощью оператора или влево с помощью SByte , Byte , Short , UShort , Integer , UInteger , Long , или ULong . Тип данных операнда величины сдвига должен быть Integer или должен быть расширен до Integer .

Арифметические сдвиги не являются циклическими. Это означает, что биты, сдвинутые с одного конца результата, не возвращаются на другом конце. Битовые позиции, освобожденные при смещении, задаются следующим образом:

0 для арифметического сдвига влево

0 для арифметического сдвига вправо положительного числа

0 для арифметического сдвига вправо типа данных без знака ( Byte , , UShort UInteger , ULong )

1 для арифметического сдвига вправо отрицательного числа ( SByte , Short , Integer или Long )

В следующем примере значение смещается влево Integer и вправо.

Арифметические сдвиги никогда не создают исключения переполнения.

Битовые операции

Помимо логических операторов, Not , Or , And и Xor выполняют побитовую арифметику при использовании числовых значений. Дополнительные сведения см. в разделе «Побитовые операции» статьи Логические и побитовые операторы в Visual Basic.

Безопасность типов

Операнды обычно должны иметь один и тот же тип. Например, если вы выполняете сложение с переменной Integer , следует добавить ее в другую Integer переменную и присвоить результат переменной типа Integer .

Одним из способов обеспечения правильного типобезопасного кодирования является использование оператора Option Strict. Если задано Option Strict On значение , Visual Basic автоматически выполняет типобезопасные преобразования. Например, при попытке добавить переменную Integer в переменную Double и присвоить ей Double значение, операция будет выполняться обычным образом, так как Integer значение можно преобразовать Double в без потери данных. С другой стороны, небезопасные преобразования типа вызывают ошибку компилятора с Option Strict On . Например, если попытаться добавить переменную в переменную Double и присвоить значение переменной Integer , компилятор выдает ошибку, так как переменная Double не может быть неявно преобразована в тип Integer . Integer

Однако если задано Option Strict Off значение , Visual Basic позволяет выполнять неявные сужающие преобразования, хотя они могут привести к непредвиденной потере данных или точности. По этой причине рекомендуется использовать Option Strict On при написании рабочего кода. Для получения дополнительной информации см. Widening and Narrowing Conversions.

Источник

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

Оператор присваивания (=)

Оператор присваивания используется для присваивания результата выражения переменной.

Операция присваивания имеет две синтаксические формы:

1 Let varname = expression
2 varname = expression

varname — любая переменная VBA

expression — любое выражение VBA

Первый вариант операции присваивания использовался в ранних языках программирования Basic. Второй вариант используется в современной версии VBA.

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

X = 5 + 7; Y = X + 5 ; Z = X — Y; A = B; I = I + 1

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

Например, если в операторе присваивания А = А +5, переменная А до операции присваивания содержала значение 7, то после операции она будет содержать значение 12 (7+5).

  • Можно присваивать любую численную переменную (или выражение) любой другой переменной численного типа (или переменной типа Variant);
  • Если присваивается численное выражение типизированной переменной с меньшей точностью (например, Double — Long), VBA округляет значение выражения для совпадения с точностью переменной, принимающей новое значение;
  • Если переменной типа String присваивается переменная типа Variant, содержащая число, VBA автоматически преобразует это число в строку.

Оператор сложения (+)

Оператор сложения выполняет простое сложение. Оба операнда должны быть численными выражениями или строками, которые VBA может преобразовать в число. Оператор сложения можно также использовать для выполнения арифметических операций с данными типа Date.

Тип данных результата выражения сложения обычно тот же, что и наиболее точный тип в этом выражении. Но, есть исключения:

  • Результатом сложения типа Single и Long будет Double;
  • Результатом сложения типа Date с любым другим типом данных всегда будет Date;
  • Если результат превышает диапазон типа Integer, то VBA преобразует его в Long;
  • Если результат превышает типы Long, Single, Date, то VBA преобразует его в Double;
  • Если любой операнд в выражении сложения является Null, то результатом выражения сложения также будет Null.

Напомним порядок увеличения точности для численных типов данных: Byte, Integer, Long, Single, Double, Currency.

Следует сказать, что надо четко понимать как VBA преобразует типы данных в результате арифметических операций. Это поможет в дальнейшем избежать многих «ненужных» ошибок при написании кода.

Оператор вычитания (-)

Оператор вычитания выполняет две задачи: используется для вычитания одного числа из другого; обозначает унарный минус (это знак минус, который помещается пред числом для указания того, что это отрицательное число). Поместить унарный минус перед переменной или выражением означает то же, что умножить это число на -1.

Оба операнда в выражении вычитания должны быть численными переменными (выражениями) или строковыми выражениями, которое VBA может преобразовать в число. Можно использовать оператор вычитания для работы с датами.

VBA использует те же правила для определения типа данных результата выражения вычитания, что и для выражений, использующих оператор сложения. Но, есть дополнение:
Если оба операнда в выражении являются типом Date, то результат выражения будет иметь тип Double.

Оператор умножения (*)

Оператор умножения перемножает два числа — результатом выражения умножения является произведение двух операндов. Оба операнда в выражении умножения должны быть численными выражениями или строками, которые VBA может преобразовать в число.

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

Оператор деления (/)

Оператор деления с плавающей точкой выполняет обычное арифметическое деление своих операндов.

В выражениях деления первый операнд делится на второй операнд — результатом деления является частное.

Оба операнда в выражении деления с плавающей точкой должны быть численными выражениями или строками, которые VBA может преобразовать в число.

Если хотя бы один операнд в выражении деления имеет тип Null, то результат деления также будет Null.

Типом данных операции деления с плавающей точкой является Double, за исключением:

  • Оба операнда в выражении деления имеют тип Integer или Single — результат Single;
  • Если результат выражения не переполняет диапазон значений для типа Single.

Целочисленное деление ()

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

Оба операнда в выражении целочисленного деления должны быть численными выражениями или строками, которые VBA может преобразовать в число.

Перед выполнением операции целочисленного деления VBA округляет каждый операнд до числа типа Integer или Long (такой же тип имеет и результат целочисленного деления).

VBA отбрасывает (но не округляет!) любой дробный остаток результата выражения целочисленного деления. Например, выражения 225 и 245 будут иметь один и тот же результат = 4.

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

Деление по модулю (Mod)

Деление по модулю как бы дополняет целочисленное деление. В делении по модулю выражение возвращает только остаток операции деления как целое.
22 Mod 5 = 2
24 Mod 5 = 4
25 Mod 5 = 0

Остальные свойства деления по модулю идентичны целочисленному делению.

Возведение в степень (^)

Оператор возведения в степень возводит число в степень.

Оба оператора в выражении возведения в степень должны быть численными выражениями или строками, которые VBA может преобразовать в числа.

Операнд слева от оператора возведения в степень может быть отрицательным числом только, если операнд справа является целым.

Результат выражения имеет тип Double.

Если хотя бы один операнд в выражении имеет тип Null, то результат возведения в степень также будет Null.

Подведем итог вышеизложенному:

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

Оператор Синтаксис Описание
+ A + B Сложение: складывает А и В.
A — B Вычитание: вычитает из А В.
* A * B Умножение: перемножает А на В.
/ A / B Деление: делит А на В.
A B Целочисленное деление: делит А на В, отбрасывая дробную часть. Результат — целое число.
Mod A Mod B Деление по модулю: делит А на В, возвращая только остаток операции деления как целое число.
^ A ^ B Возведение в степень: возводит А в степень В.

В начало страницы

В начало страницы

Источник

Adblock
detector

VBA MOD

VBA MOD

VBA Mod is not a function, in fact, it is an operation which is used for calculating the remainder digit by dividing a number with divisor. In simple words, it gives us the remainder value, which is the remained left part of Number which could not get divided completely.

How to Use VBA MOD Function?

We will discuss how to use VBA MOD Function by using some examples.

You can download this VBA MOD Function Excel Template here – VBA MOD Function Excel Template

Example #1

Press Alt + F11 to go in VBA coding mode. After that go to insert menu and select Module to open a new module.

Insert Module

Now open the body of syntax as shown below. We have names the macro subcategory as VBA_MOD. By this, it will become easy for users to identify the code to run.

Code:

Sub VBA_MOD()

End Sub

VBA MOD Example 1-1

Now as we are calculating the Mod which includes numbers for that, define an Integer “A”. This can be any alphabet as shown in below screenshot.

Code:

Sub VBA_MOD()

    Dim A As Integer

End Sub

VBA MOD Example 1-2

Now we will implement and test the same example which we have seen above. For this, in defined integer, we will write 12 Mod 5. This is a way to write the Mod operation in VBA and with the answer in the message box with msg function as shown below.

Code:

Sub VBA_MOD()

    Dim A As Integer

    A = 12 Mod  5

    MsgBox A

End Sub

VBA MOD Example 1-3

Once done, run the complete code by using F5 key or clicking on the play button as shown below. We will see the output of 12 Mod 5 as 2 which is the remainder obtained after dividing 12 by 5.

VBA MOD Example 1-4 

Example #2

There is another way to calculate the MOD in VBA. For this, we will see a decimal number and find how MOD.

Press Alt + F11 to go in VBA coding mode. After that go to insert menu and select Module to open a new module.

Insert Module

In opened new Module frame the syntax. Here we have named the macro subcategory as VBA_MOD1. By this, we will be able to differentiate the name of Marco sequence. Which we will see ahead.

Code:

Sub VBA_MOD1()

End Sub

VBA MOD Example 2-1

Now select an active cell where we need to see the result by ActiveCell.FormulaR1C1 as cell C1. Now Mod reference cell -2 and -1 are considered as cell A1 and cell B1 respectively as shown below.

Code:

Sub VBA_MOD1()

    ActiveCell.FormulaR1C1 = "=MOD(RC[-2],RC[-1])"

End Sub

VBA MOD Example 2-2

Now select the reference cell as Range where we will the output with Range(“C3”).Select. This will allow cell C3 to take the range of respective cells from -2 and -1 limit.

Code:

Sub VBA_MOD1()

    ActiveCell.FormulaR1C1 = "=MOD(RC[-2],RC[-1])"

    Range("C3").Select

End Sub

VBA MOD Example 2-3

Now, Run the code using F5 key or click on the play button which is located below the menu bar of VBA Application window as shown below.

VBA MOD Example 2-4

As we can see in the above screenshot, the output of VBA Coding is coming as 1.4.

We can assign the written code to a button where can directly click and run the code instead of running the code in by select the macro. For this go to the Developer tab and click on Design Mode as shown below.

Design Mode

This will allow us to design different tabs without affecting the written code. Now go to Insert option under Developer tab which is just beside the Design Mode option. Then select a Button as shown below.

Insert Button

Now draw the selected button and name it as MOD with the name of operation which we will be going to perform.

Right click on created MOD Button and select Assign Marco from the right click list.

Assign Macro

Now from the Assign Marco window, select the created macro. Once done, click on Ok as shown below.

Assign Macro to Button

Now to test the assigned macro in the created button, exit from Design Mode. Then put the cursor where we need to see the output as shown below.

Now click on MOD Button to see the result as shown below.

VBA MOD Example 2-5

As we can see in the above screenshot, we have got the output as 1.4 which is Mod of number 23.4 with by divisor 2.

Pros of VBA MOD

  • We can calculate Mod of multiple criteria with the help of VBA Mod in quick time.
  • An obtained result from the Excel function and VBA Code will be the same.

Things to Remember

  • Don’t forget the save the file in Macro Enable Worksheet. This will allow us to use that file multiple time without losing the written code.
  • Always compile the code before running. This will detect the error instead of getting error while actual run.
  • It is recommended to assign the written code to a Button. This process saves time.

Recommended Articles

This has been a guide to Excel VBA MOD. Here we discussed how to use VBA MOD Function to remove spaces along with some practical examples and downloadable excel template. You can also go through our other suggested articles-

  1. VBA TRIM
  2. VBA Arrays
  3. VBA Select Case
  4. VBA Find

Home / VBA / How to use MOD in VBA

In VBA, MOD is an operator, not a function and this operator helps you to divide two numbers and returns the remainder value in the result.

It’s equivalent to the mod function in Excel.

You can use the mod in so many ways and, in this tutorial, we will see some examples. Use the below steps to use the mod operator in VBA:

Range("A1") = 10 Mod 3
  1. Specify the first number which you want to get divided.
  2. After that, enter the “mod” operator.
  3. Now, enter a number that you want to divide by.
  4. In the end, use a message box or a cell to get the remainder from the division.
mod-in-vba

In the same way, you can also get the remainder using a message box.

And in the following code, we have used a message box and then used the mod operator to get the remainder after dividing.

MsgBox 9 Mod 3

And when you run this code, it returns zero in the result in the message box as when you divide 9 by 3 there’s no remainder left, so as in the result of this code.

message-box

Note: As I said, there’s also a function in Excel to get the remainder from the division of two numbers and there are a few situations where you will find that the result you get from Excel will be different from the result you got in VBA.

Error in MOD

If you try to divide a number with zero it always returns a division by zero error.

Debug.Print 10 Mod 0

And the above code returns that error.

Арифметические операции в VBA: сложение, вычитание, умножение, деление и возведение в степень

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

Выражение — это значение либо группа значений, выражающая отдельное значение. Результат выражения — одно значение определенного типа данных. Знаки (обозначения) операций используются для действий над определенными значениями в выражениях. Для присваивания результата выражения переменной используется оператор присваивания (=), который сохраняет любое значение, представленное выражением справа от оператора присваивания в ячейке памяти, на которую ссылается переменная слева от этого оператора.

Во всех операциях приведенных ниже, оба операнда должны быть численными выражениями или строками, которые VBA может преобразовать в число.

Знак (+) используется для выполнения операции сложения. Слагаемые должны быть численными выражениями, строками, которые VBA может преобразовать в числа либо датами, с которыми также возможны арифметические действия.

Тип данных результата выражения сложения обычно тот же, что и наиболее точный тип в этом выражении за некоторыми исключениями. Все исключения из этого правила наглядно представлены в примерах.

Знак (-) используется для выполнения операции вычитания, а также для обозначения отрицательных чисел (когда ставится перед переменной или выражением и означает тоже самое, что и умножение на -1). Знак минуса, который помещают перед числом для обозначения того, что число отрицательное, называют унарным минусом.

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

Правило 1. Если в выражении вычитания один из операндов является типом Date, то и результат выражения будет иметь тип Date.

Правило 2. Если в выражении вычитания оба операнда являются типом Date, то результат выражения будет иметь тип Double.

Знак (*) используется для выполнения операции умножения, результатом этой операции является произведение операндов. Для определения типа данных результата выражения умножения VBA использует те же правила, что и для выражений, использующих сложение. В выражениях умножения все переменные Variant, содержащие значения типа Date, преобразуются в численные значения.

Знак (/) используется для выполнения операции деления, этот знак называют знаком деления действительных чисел. В выражениях деления один операнд делится на другой, а результатом деления является частное.

Если любой операнд в выражении деления имеет значение Null, то результатом выражения также будет Null. Тип данных в выражениях деления действительных чисел обычно Double, но есть и исключение.

Если в выражении деления оба операнда имеют тип Integer или Single, то результат выражения деления имеет тип Single. Если результат переполняет диапазон для типа Single, то VBA преобразует его в тип Double.

Целочисленное деление

Знак () используется для выполнения операции целочисленного деления, при котором результатом деления всегда является целое число без дробной части. VBA не округляет частное целочисленного деления, а просто укорачивает его до целого числа, отбрасывая дробную часть.

Тип данных результата выражения целочисленного деления — либо Integer, либо Long. VBA использует наименьший тип данных, который соответствует результату выражения.

Деление по модулю

Знак (Mod) используется для выполнения операции деления по модулю. При делении по модулю выражение возвращает только остаток от деления как целое.

Доступное для понимания объяснение этой математической операции приведено на одном из форумов программистов. Приведу цитату оттуда: «представь, что есть полная 50л канистра и 3л банка. И ты начинаешь вычерпывать из канистры банкой воду (набирать можно только полную банку). 48л вычерпал, осталось 2 литра. Это и есть остаток от деления 50 на 3 по модулю.» Другими словами 50 Mod 3 возвращает 2.

Тип данных результата выражения деления по модулю — это Integer или Long. VBA использует наименьший тип, который подходит для результата выражения.

Возведение в степень

Знак (^) используется для выполнения операции возведения в степень числа или выражения. Показатель степени показывает, сколько раз число или выражение должно быть умножено на само себя.

Функция ОСТАТ в Microsoft Excel

Среди различных операторов Excel своими возможностями выделяется функция ОСТАТ. Она позволяет вывести в указанную ячейку остаток от деления одного числа на другое. Давайте подробнее узнаем о том, как данную функцию можно применить на практике, а также опишем нюансы работы с ней.

Применение операции

Наименование этой функции происходит от сокращенного названия термина «остаток от деления». Данный оператор, относящийся к категории математических, позволяет вывести остаточную часть результата деления чисел в указанную ячейку. При этом, целая часть полученного результата не указывается. Если при делении использовались числовые значения с отрицательным знаком, то итог обработки будет выводиться с тем знаком, который имелся у делителя. Синтаксис этого оператора выглядит следующим образом:

Как видим, выражение имеет всего два аргумента. «Число» представляет собой делимое, записанное в числовом выражении. Второй аргумент является делителем, о чем свидетельствует также и его наименование. Именно последний из них определяет знак, с которым будет возвращен результат обработки. В роли аргументов могут выступать, как сами числовые значения, так и ссылки на ячейки, в которых они содержатся.
Рассмотрим несколько вариантов вводных выражений и результатов деления:

Итог: 2.
Вводное выражение:

Итог: 2 (так как делитель положительное числовое значение).
Вводное выражение:

Итог: -2 (так как делитель отрицательное числовое значение).
Вводное выражение:

Итог: (так как 6 на 3 делится без остатка).

Пример использования оператора

Теперь на конкретном примере рассмотрим нюансы применения данного оператора.

    Открываем книгу Excel, производим выделение ячейки, в которой будет указываться результат обработки данных, и кликаем по значку «Вставить функцию», размещенному около строки формул.

Запускается окошко аргументов. Оно состоит из двух полей, которые соответствуют аргументами, описанными нами чуть выше. В поле «Число» вписываем числовое значение, которое будет выступать делимым. В поле «Делитель» вписываем то числовое значение, которое будет являться делителем. В качестве аргументов также можно вписать ссылки на ячейки, в которых расположены указанные значения. После того, как вся информация указана, щелкаем по кнопке «OK».

  • Вслед за тем, как последнее действие будет выполнено, в ячейку, которую мы отметили в первом пункте данного руководства, выводится результат обработки данных оператором, то есть, остаток от деления двух чисел.
  • Как видим, изучаемый оператор позволяет достаточно легко вывести остаток от деления чисел в указанную заранее ячейку. При этом, процедура выполняется по тем же общим закономерностям, что и для других функций приложения Excel.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

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

    Оператор присваивания (=)

    Оператор присваивания используется для присваивания результата выражения переменной.

    Операция присваивания имеет две синтаксические формы:

    1 Let varname = expression
    2 varname = expression

    varname — любая переменная VBA

    expression — любое выражение VBA

    Первый вариант операции присваивания использовался в ранних языках программирования Basic. Второй вариант используется в современной версии VBA.

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

    X = 5 + 7; Y = X + 5 ; Z = X — Y; A = B; I = I + 1

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

    Например, если в операторе присваивания А = А +5, переменная А до операции присваивания содержала значение 7, то после операции она будет содержать значение 12 (7+5).

    • Можно присваивать любую численную переменную (или выражение) любой другой переменной численного типа (или переменной типа Variant);
    • Если присваивается численное выражение типизированной переменной с меньшей точностью (например, Double — Long), VBA округляет значение выражения для совпадения с точностью переменной, принимающей новое значение;
    • Если переменной типа String присваивается переменная типа Variant, содержащая число, VBA автоматически преобразует это число в строку.

    Оператор сложения (+)

    Оператор сложения выполняет простое сложение. Оба операнда должны быть численными выражениями или строками, которые VBA может преобразовать в число. Оператор сложения можно также использовать для выполнения арифметических операций с данными типа Date.

    Тип данных результата выражения сложения обычно тот же, что и наиболее точный тип в этом выражении. Но, есть исключения:

    • Результатом сложения типа Single и Long будет Double;
    • Результатом сложения типа Date с любым другим типом данных всегда будет Date;
    • Если результат превышает диапазон типа Integer, то VBA преобразует его в Long;
    • Если результат превышает типы Long, Single, Date, то VBA преобразует его в Double;
    • Если любой операнд в выражении сложения является Null, то результатом выражения сложения также будет Null.

    Напомним порядок увеличения точности для численных типов данных: Byte, Integer, Long, Single, Double, Currency.

    Следует сказать, что надо четко понимать как VBA преобразует типы данных в результате арифметических операций. Это поможет в дальнейшем избежать многих «ненужных» ошибок при написании кода.

    Оператор вычитания (-)

    Оператор вычитания выполняет две задачи: используется для вычитания одного числа из другого; обозначает унарный минус (это знак минус, который помещается пред числом для указания того, что это отрицательное число). Поместить унарный минус перед переменной или выражением означает то же, что умножить это число на -1.

    Оба операнда в выражении вычитания должны быть численными переменными (выражениями) или строковыми выражениями, которое VBA может преобразовать в число. Можно использовать оператор вычитания для работы с датами.

    VBA использует те же правила для определения типа данных результата выражения вычитания, что и для выражений, использующих оператор сложения. Но, есть дополнение:
    Если оба операнда в выражении являются типом Date, то результат выражения будет иметь тип Double.

    Оператор умножения (*)

    Оператор умножения перемножает два числа — результатом выражения умножения является произведение двух операндов. Оба операнда в выражении умножения должны быть численными выражениями или строками, которые VBA может преобразовать в число.

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

    Оператор деления (/)

    Оператор деления с плавающей точкой выполняет обычное арифметическое деление своих операндов.

    В выражениях деления первый операнд делится на второй операнд — результатом деления является частное.

    Оба операнда в выражении деления с плавающей точкой должны быть численными выражениями или строками, которые VBA может преобразовать в число.

    Если хотя бы один операнд в выражении деления имеет тип Null, то результат деления также будет Null.

    Типом данных операции деления с плавающей точкой является Double, за исключением:

    • Оба операнда в выражении деления имеют тип Integer или Single — результат Single;
    • Если результат выражения не переполняет диапазон значений для типа Single.

    Целочисленное деление ()

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

    Оба операнда в выражении целочисленного деления должны быть численными выражениями или строками, которые VBA может преобразовать в число.

    Перед выполнением операции целочисленного деления VBA округляет каждый операнд до числа типа Integer или Long (такой же тип имеет и результат целочисленного деления).

    VBA отбрасывает (но не округляет!) любой дробный остаток результата выражения целочисленного деления. Например, выражения 225 и 245 будут иметь один и тот же результат = 4.

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

    Деление по модулю (Mod)

    Деление по модулю как бы дополняет целочисленное деление. В делении по модулю выражение возвращает только остаток операции деления как целое.
    22 Mod 5 = 2
    24 Mod 5 = 4
    25 Mod 5 = 0

    Остальные свойства деления по модулю идентичны целочисленному делению.

    Возведение в степень (^)

    Оператор возведения в степень возводит число в степень.

    Оба оператора в выражении возведения в степень должны быть численными выражениями или строками, которые VBA может преобразовать в числа.

    Операнд слева от оператора возведения в степень может быть отрицательным числом только, если операнд справа является целым.

    Результат выражения имеет тип Double.

    Если хотя бы один операнд в выражении имеет тип Null, то результат возведения в степень также будет Null.

    Примеры функции ЧАСТНОЕ для деления без остатка в Excel

    Функция ЧАСТНОЕ выполняет деление указанного числа на делитель и возвращает полученное целое значение без остатка от деления.

    Примеры использования функции ЧАСТНОЕ в Excel

    Пример 1. Определить погрешность результата при использовании функции ЧАСТНОЕ для деления чисел. Насколько целесообразно использовать данную функцию в том или ином случае? Предложить альтернативный вариант для получения более точных результатов.

    Для заполнения столбца «Частное» используем функцию ЧАСТНОЕ. Пример для расчета значения в ячейке C3:

    • A3 – число, которое является числителем в дробной записи деления;
    • B3 – знаменатель дробной записи деления.

    С использованием автозаполнения проведем все остальные вычисления:

    Для получения точного результата используем оператор «/». Пример расчета для ячейки D3:

    Перед вычислением погрешности выделите диапазон ячеек E3:E10 и установите тип данных «Процентный». Для расчета погрешности используем следующую формулу:

    Как видно, погрешность может быть достаточно высокой. Для нахождения более точных целых значений целесообразно использовать оператор «/» совместно с функцией ОКРГУЛ. Например:

    Для расчетов округленных значений использовалась формула =ОКРУГЛ(A3/B3;0) (на примере расчета для ячейки F3).

    Калькулятор расчета давления труб в Excel

    Пример 2. Выбрать трубопровод с подходящим сечением для линии подачи воды, если скорость потока составляет 1,5 м/с (1500 мм/с), а расход жидкости – 0,002 м3/с (2000000 мм3/с). В таблице представлены трубы с номинальными диаметрами (Ду).

    Для расчета пропускного сечения трубы используется формула:

    При выборе трубы всегда оставляют запас пропускного сечения (пропускное сечение должно быть больше, чем действительный расход), поэтому в данном случае целесообразно использовать формулу ЧАСТНОЕ.

    Для поиска подходящего сечения трубы используем формулу (формула массива CTRL+SHIFT+Enter):

    =E4;B3:B9;»»));B3:B9;0);1);»Нет трубы в списке»)’ class=’formula’>

    1. Запись ИНДЕКС(B3:B9;ПОИСКПОЗ(МИН(ЕСЛИ(B3:B9>=E4;B3:B9;»»));B3:B9;0);1) используется для поиска указанной ближайшей величины из диапазона (B3:B9), которая больше указанной (E4).
    2. Если искомая величина превышает значение последнего элемента в диапазоне (элемента с наибольшим значением), будет возвращен код ошибки #ЗНАЧ!. Благодаря функции ЕСЛИОШИБКА вместо кода ошибки будет отображена текстовая строка «Нет трубы в списке».

    То есть, была выбрана труба с проходным сечением Ду 50 мм.

    Особенности использования функции ЧАСТНОЕ в Excel

    Функция имеет следующую синтаксическую запись:

    • числитель – обязательный аргумент, характеризующий числитель дробной записи деления двух чисел;
    • знаменатель – обязательный аргумент, который характеризует знаменатель дробной записи деления.
    1. Функция принимает в качестве аргументов только числовые значения и текстовые строки, которые могут быть преобразованы к числовому типу данных.
    2. Рассматриваемая функция возвращает код ошибки #ЗНАЧ!, если один из аргументов не является числом или текстовым представлением числового значения. Например, функция =ЧАСТНОЕ(10;«2») вернет значение 5, а с аргументами (10;«2в») вернет ошибку #ЗНАЧ!.
    3. Также не реализована поддержка логических значений (ИСТИНА, ЛОЖЬ), которые могут быть преобразованы в числовые значения 1 и 0 соответственно. Результатом выполнения функции при аргументах (10;ИСТИНА) будет код ошибки #ЗНАЧ!.
    4. Общепринятые правила запрещают деление чисел на 0 (нуль). Эта особенность учтена в Excel при использовании оператора «/», а также функций ЧАСТНОЕ и ОСТАТ. Функция =ЧАСТНОЕ(5;0) вернет код ошибки #ДЕЛ/0!.
    5. Функция ЧАСТНОЕ не может быть использована в качестве формулы массива. Для деления сразу нескольких значений можно использовать функционал автозаполнения ячеек.
    1. Для деления двух чисел в Excel используется символ «/», но при этом результатом вычислений является действительное число (число, которое может состоять из целой и дробной части).
    2. Для получения целой части числа, которое является частным от процедуры деления делимого на делитель, используют данную функцию.
    3. Для получения остатка от деления предусмотрена функция ОСТАТ.
    4. В отличие от операции округления, в результате которой возвращается ближайшее значение, функция просто отбрасывает дробную часть числа. Например, результат деления 8/3 равен 2,(6) (значение, которое ближе к 3). Однако функция при аргументах (8;3) функция вернет число 2.

    Модуль числа в Excel

    Выясним как посчитать модуль числа в Excel с помощью функции ABS, а также дополнительно рассмотрим несколько различных вариантов вычисления формулы модуля.

    Модуль (или абсолютная величина) числа в математике — это неотрицательное число, значение которого зависит от типа числа.
    Если число a неотрицательное, то модуль равняется самому числу (a при a ≥ 0), если отрицательное, то модуль равняется его положительному значению (-a при a

    ABS(число)
    Возвращает модуль (абсолютную величину) числа.

    • Число(обязательный аргумент) — действительное число, модуль которого требуется посчитать.

    В качестве аргумента функции задаем произвольное действительное число, в результате получаем его абсолютную величину:


    Несмотря на то, что знак модуля в математике обозначается как вертикальная черта |, попытка поставить знак модуля в Excel для поиска значения по модулю приведет к ошибке, например, при вводе формулы =|-29| Excel выдаст ошибку.

    Альтернативные способы расчета

    Если вдруг формула ABS вылетела из головы, и Вы забыли как посчитать модуль в Excel с ее помощью, то рассмотрим несколько способов поиска абсолютной величины числа без использования данной формулы.

    С помощью функции ЗНАК

    Согласно определению, модуль — это неотрицательное значение исходного числа, поэтому умножая число на 1 или -1 в зависимости от знака числа (то есть положительное умножаем на 1, отрицательное умножаем на -1), мы в итоге получим абсолютную величину:

    С помощью функции КОРЕНЬ

    Чтобы найти модуль мы также можем воспользоваться свойством вычисления квадратного корня в Excel.
    Напомним, что в Excel используется понятие арифметического корня для вычисления корней четных степеней.
    Другими словами, корень четной степени в Excel всегда принимает неотрицательное значение, поэтому при извлечении квадратного корня от числа возведенного в квадрат, мы опять в результате получим абсолютную величину:

    Like this post? Please share to your friends:
  • Vba excel печать на одной странице
  • Vba excel печать диапазона ячеек
  • Vba excel печать в pdf
  • Vba excel переходит на лист
  • Vba excel переход на следующую строку