Условие не равно vba excel

Операторы сравнения чисел и строк, ссылок на объекты (Is) и строк по шаблону (Like), использующиеся в VBA Excel. Их особенности, примеры вычислений.

Операторы сравнения чисел и строк

Операторы сравнения чисел и строк представлены операторами, состоящими из одного или двух математических знаков равенства и неравенства:

  • <   – меньше;
  • <= – меньше или равно;
  • >   – больше;
  • >= – больше или равно;
  • =   – равно;
  • <> – не равно.

Синтаксис:

Результат = Выражение1 Оператор Выражение2

  • Результат – любая числовая переменная;
  • Выражение – выражение, возвращающее число или строку;
  • Оператор – любой оператор сравнения чисел и строк.

Если переменная Результат будет объявлена как Boolean (или Variant), она будет возвращать значения False и True. Числовые переменные других типов будут возвращать значения 0 (False) и -1 (True).

Операторы сравнения чисел и строк работают с двумя числами или двумя строками. При сравнении числа со строкой или строки с числом, VBA Excel сгенерирует ошибку Type Mismatch (несоответствие типов данных):

Sub Primer1()

On Error GoTo Instr

Dim myRes As Boolean

‘Сравниваем строку с числом

  myRes = «пять» > 3

Instr:

If Err.Description <> «» Then

  MsgBox «Произошла ошибка: « & Err.Description

End If

End Sub

Сравнение строк начинается с их первых символов. Если они оказываются равны, сравниваются следующие символы. И так до тех пор, пока символы не окажутся разными или одна или обе строки не закончатся.

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

myRes = «семь» > «восемь» ‘myRes = True

myRes = «Семь» > «восемь» ‘myRes = False

myRes = Len(«семь») > Len(«восемь») ‘myRes = False

Оператор Is – сравнение ссылок на объекты

Оператор Is предназначен для сравнения двух переменных со ссылками на объекты.

Синтаксис:

Результат = Объект1 Is Объект2

  • Результат – любая числовая переменная;
  • Объект – переменная со ссылкой на любой объект.

Если обе переменные Объект1 и Объект2 ссылаются на один и тот же объект, Результат примет значение True. В противном случае результатом будет False.

Set myObj1 = ThisWorkbook

Set myObj2 = Sheets(1)

Set myObj3 = myObj1

Set myObj4 = Sheets(1)

myRes = myObj1 Is myObj2 ‘myRes = False

myRes = myObj1 Is myObj3 ‘myRes = True

myRes = myObj2 Is myObj4 ‘myRes = True

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

Set myObj1 = Range(«A1:D4»)

Set myObj2 = Range(«A1:D4»)

Set myObj3 = myObj1

myRes = myObj1 Is myObj2 ‘myRes = False

myRes = myObj1 Is myObj3 ‘myRes = True

Оператор Like – сравнение строк по шаблону

Оператор Like предназначен для сравнения одной строки с другой по шаблону.

Синтаксис:

Результат = Выражение Like Шаблон

  • Результат – любая числовая переменная;
  • Выражение – любое выражение, возвращающее строку;
  • Шаблон – любое строковое выражение, которое может содержать знаки подстановки.

Строка, возвращенная аргументом Выражение, сравнивается со строкой, возвращенной аргументом Шаблон. Если обе строки совпадают, переменной Результат присваивается значение True, иначе – False.

myRes = «восемь» Like «семь»  ‘myRes = False

myRes = «восемь» Like «*семь»  ‘myRes = True

myRes = «Куда идет король» Like «идет»  ‘myRes = False

myRes = «Куда идет король» Like «*идет*»  ‘myRes = True

Со знаками подстановки для оператора Like вы можете ознакомиться в статье Знаки подстановки для шаблонов.

Not Equal is an operator in VBA, also called a negation operator. It is a logical function, so the output returned by this function is either “True” or “False.” We know that the equal operator is “=” this but not equal is “<>” in VBA, so whatever the value we get from the equal operator, we will get the exact opposite value using the Not Equal operator.

“Not Equal” Operator in VBA

Usually, we do a logical test “whether something is equal to other things or not.” Sometimes, we also need to do the “inequality” test. The inequality test is nothing but not an equal test. Generally, we say if something is equal to another thing or not. If it is equal, perform some task if not a different task. Similarly, we can also do some operations using the Inequality test. For example, “NOT EQUAL” in VBA represents the combination of greater than and less than symbols. If both these operators are combined, then it becomes not equal, i.e., “<>.

Table of contents
  • “Not Equal” Operator in VBA
    • How Not Equal to Works in Excel VBA?
    • Examples of Not Equal to in Excel VBA
      • Example #1
      • Example #2
    • Hide and Unhide Sheets with Not Equal Sign
      • #1 – Hide All Sheets except One Sheet
      • #2 – Unhide All Sheets except One Sheet
    • Recommended Articles

How Not Equal Works in Excel VBA?

VBA Not Equal works exactly opposite to the logic of equal to operator. Equal to operator returns TRUE if the supplied test is satisfied is not, it will return FALSE. So, for example, if you say 10 = 10, it will return TRUE or else FALSE.

Conversely, “Not Equal” works in the opposite direction. If the supplied logical test in excelA logical test in Excel results in an analytical output, either true or false. The equals to operator, “=,” is the most commonly used logical test.read more is not equal, then only it will return TRUE or else FALSE.

For example, if you say 10 <> 10, it will return FALSE because 10 equals 10. Therefore, one value should not be equal to the other value to get a TRUE result.

VBA Not Equal

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 Not Equal (wallstreetmojo.com)

Examples of Not Equal to in Excel VBA

Below are the examples of not equal to the operator in Excel VBA.

Example #1

Now, we will see how to practically use the VBA Not Equal (<>) sign. Look at the below piece of code.

Code:

Sub NotEqual_Example1()

    Dim k As String

    k = 100 <> 100

    MsgBox k

End Sub

VBA Not Equal Example 1

Here, we are testing whether the number 100 is not equal to the number 100. We know the number 100 equals 100, so the result will be FALSE.

VBA Not Equal Example 1-1

Now, we will change the equation.

Code:

Sub NotEqual_Example1()

    Dim k As String

    k = 100 <> 99

    MsgBox k

End Sub

VBA Not Equal Example 1-2

Now, the test is whether the number 100 is not equal to 99. So the result will be TRUE.

VBA Not Equal Example 1-3

Example #2

Now, we will see how to use this not equal operator in real-time examples. For the demonstration, we have created some data.

VBA Not Equal Example 2

We have “Value 1” and “Value 2.”

Now, our requirement is if Value 1 is not equal to Value 2, then we need the result as “Different,” or else we need the result as “Same.”

Step 1: Define a variable as an Integer.

Code:

Sub NotEqual_Example2()

 Dim k As Integer

End Sub

VBA Not Equal Example 2-1

Step 2: Open FOR NEXT LOOP from 2 to 9.

Code:

Sub NotEqual_Example2()

  Dim k As Integer

  For k = 2 To 9

  Next k

End Sub

Example 2-2

Step 3: Inside the loop, we need to test whether Value 1 is not equal to Value 2. Since we need our results, we need to use IF Condition.

Code:

Sub NotEqual_Example2()

   Dim k As Integer

   For k = 2 To 9

      If Cells(k, 1) <> Cells(k, 2) Then
           Cells(k, 3).Value = "Different"
      Else
           Cells(k, 3).Value = "Same"
      End If

   Next k

End Sub

Example 2-3

Suppose the condition tests whether Value 1 is not equal to Value 2 or not. If not equal, it will return “Different.” If equal, it will return “Same.”

You can copy and paste the below VBA codeVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more.

Copy this code to your module and run using the F5 key or manually. It will return a result like this.

Example 2-4

Hide and Unhide Sheets with Not Equal Sign

The various ways of using not equal sign are enormous. However, we can use this sign to fulfill our needs.

#1 – Hide All Sheets except One Sheet

We have seen this kind of situation many times. We needed to hide all the sheets except the particular sheet.

For example, if you want to hide all sheets except the sheet name “Customer Data,” then you can use this code.

Code:

Sub Hide_All()

    Dim Ws As Worksheet

    For Each Ws In ActiveWorkbook.Worksheets

        If Ws.Name <> "Customer Data" Then
            Ws.Visible = xlSheetVeryHidden
        End If
    Next Ws

End Sub

Example 3

Note: Change the worksheet name to your worksheet name.

#2 – Unhide All Sheets except One Sheet

Similarly, we can also unhide all sheets except one sheet. Use the below code to do this.

Code:

Sub Unhide_All()

    Dim Ws As Worksheet

    For Each Ws In ActiveWorkbook.Worksheets

        If Ws.Name <> "Customer Data" Then
            Ws.Visible = xlSheetVisible
        End If
   Next Ws

End Sub

Example 3-1.

You can download this VBA Not Equal to Excel template here – VBA Not Equal Operator Template.

Recommended Articles

This article has been a guide to VBA, Not Equal. Here, we look at how to use the logical operator “Not Equal to” in VBA, along with practical examples and downloadable Excel sheets. Below are some useful VBA-related articles: –

  • Not Function in Excel VBA
  • VBA StrConv
  • VBA Integer

VBA in Excel stands for Visual Basic for Applications which is Microsoft’s programming language. To optimize the performance and reduce the time in Excel we need Macros and VBA is the tool used in the backend.

Some helpful links to get more insights about Macros, VBA in Excel :

1. Record Macros in Excel.

2. How to Create a Macro in Excel?

In this article, we are going to discuss various comparison operators in Excel VBA.

Implementation :

In the Microsoft Excel tabs, select the Developer Tab. Initially, the Developer Tab may not be available. 

The Developer Tab can be enabled easily by a two-step process :

  • Right-click on any of the existing tabs in the top of the Excel window.
  • Now select Customize the Ribbon from the pop-down menu.

  • The Excel Options Box, check the box Developer to enable it and click on OK.

  • Now, the Developer Tab is visible.

  • Now click on the Visual Basic option in the Developer tab and make a new module to write the program.
Developer  -> Visual Basic -> Tools -> Macros

Now create a Macro and give any suitable name.

This will open the Editor window where can write the code.

Comparison Operators in Excel:

S.No. Operators

Definition

1 <>

 Not equal operator is used to compare two operands. If the two operands

are not equal it returns TRUE else it returns FALSE.

For example : A=10, B= 20

The condition will be TRUE for A <> B, since A and B are not equal.

2 =

 Equal operator is used to compare two operands. If the two operands

are equal it returns TRUE else it returns FALSE.

For example : A=20, B= 20

The condition will be TRUE for A = B, since A and B are equal.

3 >

Greater than operator checks whether the operand on the left hand side is strictly 

greater than the operand on RHS. If greater then it returns TRUE else FALSE.

For example : A=10, B= 5

The condition will be TRUE for A > B, since A is greater than B.

4 <

Less than operator checks whether the operand on the left hand side is strictly

less than the operand on RHS. If greater then it returns TRUE else FALSE.

For example : A=10, B= 5

The condition will be FALSE for A < B, since A is greater than B.

5 >=

Greater than equal to operator checks whether the operand on the left hand side is either

greater or equal to the operand on RHS. If greater or equal then it returns TRUE else FALSE.

For example : A=10, B=10

The condition will be TRUE for A >= B, since A is equal to B.

6 <=

Less than equal to operator checks whether the operand on the left hand side is either

lesser or equal to the operand on RHS. If lesser or equal then it returns TRUE else FALSE.

For example : A=5, B=10

The condition will be TRUE for A <= B, since A is less than B.

The comparison operators are mostly used with the If Else Then statement in Excel because comparison operators return TRUE if the condition is met and FALSE if not. 

The syntax of If Else in Excel is :

If condition/expression Then
    Code Block for True
Else
    Code Block for False
End If

Let’s take an example where values of A=-1 and B=-5 and see the code in Excel VBA for all the comparison operators.

1. Equal To and Not Equal To

Sub Comparison_Operator_Demo()
'Entering the numbers
Dim A As Integer: A = -1
Dim B As Integer: B = -5
'Condition for Equal To
If A = B Then
    MsgBox " A and B are equal"
Else
    MsgBox " A and B are not equal"
End If
End Sub

In the above code, If the condition becomes FALSE since A and B values are not the same. So the code block inside Else will be executed.

Sub Comparison_Operator_Demo()
'Entering the numbers
Dim A As Integer: A = -1
Dim B As Integer: B = -5
'Condition for Not Equal To
If A <> B Then
    MsgBox " True since A and B are not same"
Else
    MsgBox " False since A and B are same"
End If
End Sub

In the above code If the condition becomes TRUE since A and B are not same. So the code block inside If will be executed.

2. Greater than or Less than operator :

Sub Comparison_Operator_Demo()
'Entering the numbers
Dim A As Integer: A = -1
Dim B As Integer: B = -5
'Condition for Greater Than
If A > B Then
    MsgBox " A is greater than B"
Else
    MsgBox " A is not greater than B"
End If
End Sub

In the above code If the condition becomes TRUE since A is greater than B. So the code block inside If will be executed.

Sub Comparison_Operator_Demo()
'Entering the numbers
Dim A As Integer: A = -1
Dim B As Integer: B = -5
'Condition for Less Than
If A < B Then
    MsgBox "True because A is less than B"
Else
    MsgBox "False because A is greater than B"
End If
End Sub

In the above code If the condition becomes FALSE since A is greater than B. So the code block inside Else will be executed.

Similarly, you can do for Greater than equal to and Less than equal to operators.

Содержание

  1. Операторы сравнения VBA — не равно и не только
  2. Список основных операторов сравнения в VBA
  3. Больше или равно
  4. Меньше, чем
  5. Операторы сравнения
  6. Синтаксис
  7. Замечания
  8. Пример
  9. См. также
  10. Поддержка и обратная связь
  11. 8) Операторы сравнения VBA
  12. Операторы сравнения VBA
  13. Пример исходного кода
  14. Проверка условий (If…Then…)
  15. Краткое руководство по VBA If Statement
  16. Что такое IF и зачем оно тебе?
  17. Тестовые данные
  18. Формат операторов VBA If Then
  19. Простой пример If Then
  20. Условия IF
  21. Использование If ElseIf
  22. Использование If Else
  23. Используя If And/If Or
  24. Функция IIF
  25. Использование Select Case

Операторы сравнения VBA — не равно и не только

VBA позволяет использовать операторы сравнения для сравнения значений. Используя эти операторы, вы можете сравнивать значения и в результате возвращать логическое значение True или False.

Список основных операторов сравнения в VBA

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

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

Больше или равно

intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, intA больше, чем intB. Если это правда, значение Boolean blnResult будет True, в противном случае — False.

Кроме того, мы используем > в операторе If, чтобы проверить, имеет ли значение intA больше, чем intB:

12345 Если intA> intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В заключение, посколькуintA больше, чем intB, то blnResult возвращает True:

Изображение 3. Использование оператора «Больше, чем»

Больше или равно

В Больше или равно Оператор проверяет, больше ли первое значение второму или равно ему, и возвращает True или False. Вот пример кода:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 5intB = 5Если intA> = intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, intA Больше или равно intB. Если это правда, значение Boolean blnResult будет True, в противном случае — False.

Мы используем>= в операторе If, чтобы проверить, имеет ли значение intA Больше или равно intB:

12345 Если intA> = intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В заключение, поскольку обе переменные равны 5, blnResult возвращает True:

Изображение 4. Использование оператора «Больше или равно»

Меньше, чем

В Меньше, чем Оператор проверяет, меньше ли первое значение второго и возвращает True или False. Вот пример кода:

Источник

Операторы сравнения

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

Синтаксис

Результат = expression1comparisonoperatorexpression2result = object1Isobject2result = stringLikepattern

Операторы сравнения состоят из следующих частей:

Part Описание
result Обязательный элемент; любая числовая переменная.
выражение Обязательный элемент; любое выражение.
comparisonoperator Обязательный элемент; любой оператор сравнения.
object Обязательный; любое имя объекта.
строка Обязательный элемент; любое строковое выражение.
pattern Обязательный элемент; любое строковое выражение или диапазон символов.

Замечания

Следующая таблица содержит список операторов сравнения и условий, определяющих, имеет ли результатзначение True, False или Null.

Оператор True, если False, если Null, если
(Меньше) expression1 = expression2 expression1 или expression2 = NULL
(Меньше или равно) expression1 expression2 expression1 или expression2 = NULL
> (Больше) expression1>expression2 expression1 >= (Больше или равно) expression1> = expression2 expression1 = (Равно) expression1 = expression2 expression1<>expression2 expression1 или expression2 = NULL
<> (Не равно) expression1<>expression2 expression1 = expression2 expression1 или expression2 = NULL

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

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

Если Then
Оба выражения представляют собой числовые типы данных (Byte, Boolean, Integer, Long, Single, Double, Date, Currency или Decimal) Выполните числовое сравнение.
Оба выражения имеют тип String Выполняется сравнение строк.
Одно выражение является числовым типом данных, а другое — типом Variant, который равен числу или может им быть Выполните числовое сравнение.
Одно выражение является числовым типом данных, а другое — строкой Variant, которая не может быть преобразована в число Возникает Type Mismatch ошибка.
Одно выражение — String, а другое — любое значение Variant за исключением Null Выполните строковое сравнение.
Одно выражение — Empty, а другое является числовым типом данных Выполните числовое сравнение, используя 0 в качестве выражения Empty.
Одно выражение — Empty, а другое — String Выполните строковое сравнение, используя строку нулевой длины («») в качестве выражения Empty.

Если оба выражения expression1 и expression2 являются выражениями типа Variant, порядок их сравнения определяется их базовым типом. В следующей таблице показано, как сравниваются выражения или результат сравнения в зависимости от базового типа Variant.

Если Then
Оба выражения Variant являются числовыми Выполните числовое сравнение.
Оба выражения Variant являются строками Выполните строковое сравнение.
Одно выражение Variant числовое, а другое строка Числовое выражение меньше, чем строковое выражение.
Одно выражение VariantEmpty, а другое — числовое Выполните числовое сравнение, используя 0 в качестве выражения Empty.
Одно выражение VariantEmpty, а другое — строка Выполните строковое сравнение, используя строку нулевой длины («») в качестве выражения Empty.
Оба выражения VariantEmpty Выражения равны.

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

Аналогично, когда переменная Decimal сравнивается с переменной Single или Double, значение Single или Double преобразуется в тип Decimal. Для типа Currency любое дробное значение менее чем 0,0001 может быть потеряно; для типа Decimal любое дробное значение менее чем 1E-28 может быть потеряно, или возможно возникновение ошибки переполнения. Потеря такого дробного значения может привести к тому, что два сравниваемых значения будут равны, когда на самом деле они не равны.

Пример

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

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

8) Операторы сравнения VBA

Операторы сравнения VBA

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

В следующей таблице приведены операторы сравнения VBA.

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

S / N оператор Описание пример Вывод
1 знак равно Равно: проверяет, равны ли два значения. Он также используется в качестве оператора присваивания Если x = z, то Возвращает true, если они равны, иначе возвращает false
2 Менее чем: этот оператор используется для вычитания чисел Если x Возвращает true, если x меньше z, иначе возвращает false
3 > Больше чем: этот оператор используется для умножения чисел Если x> z, то Возвращает true, если x больше z, иначе возвращает false
4 <> Не равно: этот оператор используется для деления чисел Если x <> z, то Возвращает true, если они не равны, иначе возвращает false
5 Меньше или равно: Если x Возвращает true, если x меньше или равен z, иначе возвращает false
6 > = Больше или равно: Если х> = Тогда Возвращает true, если x больше z, иначе возвращает false

Пример исходного кода

Оператор равного сравнения

ВОТ,

  • «If 2 = 1 Then… Else… End If» использует оператор if для оценки условия «2 = 1»
  • «MsgBox…» – это встроенная функция, которая отображает окно сообщения.
    • Первый параметр «True» или «False» – это то, что будет отображаться в окне сообщения. В нашем примере 2 не равно 1, поэтому в поле сообщения отображается «ложь».
    • Второй параметр «vbOKOnly» – это кнопка, которая отображается в окне сообщения
    • Третий параметр «Оператор равенства» – это заголовок окна сообщения.

Выполнение приведенного выше кода дает следующие результаты

Источник

Проверка условий (If…Then…)

Угадай, если сможешь, и выбери, если посмеешь

Краткое руководство по VBA If Statement

Описание Формат Пример
If Then If [условие верно]
Then [действие]
End If
If score = 100
Then Debug.Print
«Отлично»
End If
If Else If [условие верно]
Then [действие]
Else [действие]
End If
If score = 100
Then Debug.Print
«Отлично»
Else Debug.Print
«Попробуй снова»
End If
If ElseIf If [1 условие верно]
Then [действие]
ElseIf [2 условие
верно]
Then [действие]
End If
If score = 100
Then Debug.Print
«Отлично»
ElseIf score > 50
Then Debug.Print
«Пройдено»
ElseIf score 50
Then Debug.Print
«Пройдено»
ElseIf score > 30
Then Debug.Print
«Попробуй снова»
Else Debug.Print
«Ой»
End If
If без Endif
(Только одна
строка)
If [условие верно]
Then [действие]
If value

В следующем коде показан простой пример использования оператора VBA If

Что такое IF и зачем оно тебе?

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

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

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

Важным словом в последнем предложении является проверка. Оператор If используется для проверки значения, а затем для выполнения задачи на основе результатов этой проверки.

Тестовые данные

Мы собираемся использовать следующие тестовые данные для примеров кода в этом посте.

Формат операторов VBA If Then

Формат оператора If Then следующий

За ключевым словом If следуют условие и ключевое слово Then

Каждый раз, когда вы используете оператор If Then, вы должны использовать соответствующий оператор End If.

Когда условие оценивается как истинное, обрабатываются все строки между If Then и End If.

Чтобы сделать ваш код более читабельным, рекомендуется делать отступы между операторами If Then и End If.

Отступ между If и End If

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

Sub … End Sub
If Then … End If
If Then… ElseIf … Else … Endif
For … Next
Do While … Loop
Select Case … End Case

Для отступа в коде вы можете выделить строки для отступа и нажать клавишу Tab. Нажатие клавиш Shift + Tab сделает отступ кода, т.е. переместит его на одну вкладку влево.

Вы также можете использовать значки на панели инструментов Visual Basic для отступа кода.

Если вы посмотрите на примеры кода на этом сайте, вы увидите, что код имеет отступ.

Простой пример If Then

Следующий код выводит имена всех студентов с баллами более 50.

  • Василий Кочин
  • Максим Бородин
  • Дмитрий Маренин
  • Олеся Клюева
  • Евгений Яшин

Поэкспериментируйте с этим примером и проверьте значение или знак > и посмотрите, как изменились результаты.

Условия IF

Часть кода между ключевыми словами If и Then называется условием. Условие — это утверждение, которое оценивается как истинное или ложное. Они в основном используются с операторами Loops и If. При создании условия вы используете такие знаки, как «>, ,> =,

Условие Это верно, когда
x 5 x больше, чем 5
x >= 5 x больше, либо равен 5
x = 5 x равен 5
x <> 5 x не равен 5
x > 5 And x 10 x равен 2 ИЛИ x больше,чем 10
Range(«A1») = «Иван» Ячейка A1 содержит текст «Иван»
Range(«A1») <> «Иван» Ячейка A1 не содержит текст «Иван»

Вы могли заметить x = 5, как условие. Не стоит путать с х = 5, при использовании в качестве назначения.

Когда в условии используется «=», это означает, что «левая сторона равна правой стороне».

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

Использование «=» Тип Значение
Loop Until x = 5 Условие Равен ли x пяти
Do While x = 5 Условие Равен ли x пяти
If x = 5 Then Условие Равен ли x пяти
For x = 1 To 5 Присваивание Установите значение х = 1, потом = 2 и т.д.
x = 5 Присваивание Установите х до 5
b = 6 = 5 Присваивание и
условие
Присвойте b
результату условия
6 = 5
x = MyFunc(5,6) Присваивание Присвойте х
значение,
возвращаемое
функцией

Последняя запись в приведенной выше таблице показывает оператор с двумя равными. Первый знак равенства — это присвоение, а любые последующие знаки равенства — это условия.

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

[переменная] [=] [оценить эту часть]

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

Использование If ElseIf

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

Важно понимать, что порядок важен. Условие If проверяется первым.

Если это правда, то печатается «Высший балл», и оператор If заканчивается.

Если оно ложно, то код переходит к следующему ElseIf и проверяет его состояние.

Давайте поменяемся местами If и ElseIf из последнего примера. Код теперь выглядит так

В этом случае мы сначала проверяем значение более 75. Мы никогда не будем печатать «Высший балл», потому что, если значение больше 85, это вызовет первый оператор if.

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

Давайте расширим оригинальный код. Вы можете использовать столько операторов ElseIf, сколько захотите. Мы добавим еще несколько, чтобы учесть все наши классификации баллов.

Использование If Else

Утверждение Else используется, как ловушка для всех. Это в основном означает «если бы не было условий» или «все остальное». В предыдущем примере кода мы не включили оператор печати для метки сбоя. Мы можем добавить это, используя Else.

Так что, если это не один из других типов, то это провал.

Давайте напишем некоторый код с помощью наших примеров данных и распечатаем студента и его классификацию.

Результаты выглядят так: в столбце E — классификация баллов

Используя If And/If Or

В выражении If может быть несколько условий. Ключевые слова VBA And и Or позволяют использовать несколько условий.

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

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

Мы используем Аnd, чтобы добавить дополнительное условие. Код гласит: если оценка больше или равна 50 и меньше 75, напечатайте имя студента.

Вывести имя и фамилию в результаты:

  • Дмитрий Маренин
  • Олеся Клюева
  • Евгений Яшин

В нашем следующем примере мы хотим знать, кто из студентов сдавал историю или геометрию. Таким образом, в данном случае мы говорим, изучал ли студент «История» ИЛИ изучал ли он «Геометрия» (Ctrl+G).

  • Василий Кочин
  • Александр Грохотов
  • Дмитрий Маренин
  • Николай Куликов
  • Олеся Клюева
  • Наталия Теплых
  • Дмитрий Андреев

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

Использование IF AND

And работает следующим образом:

Условие 1 Условие 2 Результат
ИСТИНА ИСТИНА ИСТИНА
ИСТИНА ЛОЖЬ ЛОЖЬ
ЛОЖЬ ИСТИНА ЛОЖЬ
ЛОЖЬ ЛОЖЬ ЛОЖЬ

Что вы заметите, так это то, что And верно только тогда, когда все условия выполняются.

Использование IF OR

Ключевое слово OR работает следующим образом

Условие 1 Условие 2 Результат
ИСТИНА ИСТИНА ИСТИНА
ИСТИНА ЛОЖЬ ИСТИНА
ЛОЖЬ ИСТИНА ИСТИНА
ЛОЖЬ ЛОЖЬ ЛОЖЬ

Что вы заметите, так это то, что OR ложно, только когда все условия ложны.

Смешивание And и Or может затруднить чтение кода и привести к ошибкам. Использование скобок может сделать условия более понятными.

Использование IF NOT

Также есть оператор NOT. Он возвращает противоположный результат условия.

Условие Результат
ИСТИНА ЛОЖЬ
ЛОЖЬ ИСТИНА

Следующие две строки кода эквивалентны.

Помещение условия в круглые скобки облегчает чтение кода

Распространенное использование Not — при проверке, был ли установлен объект. Возьмите Worksheet для примера. Здесь мы объявляем рабочий лист.

Мы хотим проверить действительность mySheet перед его использованием. Мы можем проверить, если это Nothing.

Нет способа проверить, является ли это чем-то, поскольку есть много разных способов, которым это может быть что-то. Поэтому мы используем NOT с Nothing.

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

Функция IIF

VBA имеет функцию, аналогичную функции Excel If. В Excel вы часто используете функцию If следующим образом:

= ЕСЛИ (F2 =»»,»», F1 / F2)

= If (условие, действие, если ИСТИНА, действие, если ЛОЖЬ).

VBA имеет функцию IIf, которая работает так же. Давайте посмотрим на примере. В следующем коде мы используем IIf для проверки значения переменной val. Если значение больше 10, мы печатаем ИСТИНА, в противном случае мы печатаем ЛОЖЬ.

В нашем следующем примере мы хотим распечатать «Удовлетворитеьно» или «Незачет» рядом с каждым студентом в зависимости от их баллов. В первом фрагменте кода мы будем использовать обычный оператор VBA If, чтобы сделать это.

В следующем фрагменте кода мы будем использовать функцию IIf. Код здесь намного аккуратнее.

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

Использование Nested IIf

Вы также можете вкладывать IIf-операторы, как в Excel. Это означает использование результата одного IIf с другим. Давайте добавим еще один тип результата в наши предыдущие примеры. Теперь мы хотим напечатать «Отлично», «Удовлетворительно» или «Незачетт» для каждого студента.

Используя обычный VBA, мы сделали бы это так

Используя вложенные IIfs, мы могли бы сделать это так

Использование вложенного IIf хорошо в простых случаях, подобных этому. Код прост для чтения и, следовательно, вряд ли вызовет ошибки.

Чего нужно остерегаться

Важно понимать, что функция IIf всегда оценивает как Истинную, так и Ложную части выражения независимо от условия.

В следующем примере мы хотим разделить по баллам, когда он не равен нулю. Если он равен нулю, мы хотим вернуть ноль.

Однако, когда отметки равны нулю, код выдаст ошибку «Делить на ноль». Это потому, что он оценивает как Истинные, так и Ложные утверждения. Здесь ложное утверждение, т.е. (60 / Marks), оценивается как ошибка, потому что отметки равны нулю.

Если мы используем нормальный оператор IF, он будет запускать только соответствующую строку.

Это также означает, что если у вас есть функции для ИСТИНА и ЛОЖЬ, то обе будут выполнены. Таким образом, IIF будет запускать обе функции, даже если он использует только одно возвращаемое значение. Например:

IF против IIf

В этом случае вы можете видеть, что IIf короче для написания и аккуратнее. Однако если условия усложняются, вам лучше использовать обычное выражение If. Недостатком IIf является то, что он недостаточно известен, поэтому другие пользователи могут не понимать его так же, как и код, написанный с помощью обычного оператора if.

Кроме того, как мы обсуждали в последнем разделе, IIF всегда оценивает части ИСТИНА и ЛОЖЬ, поэтому, если вы имеете дело с большим количеством данных, оператор IF будет быстрее.

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

Использование Select Case

Оператор Select Case — это альтернативный способ написания статистики If с большим количеством ElseIf. Этот тип операторов вы найдете в большинстве популярных языков программирования, где он называется оператором Switch. Например, Java, C #, C ++ и Javascript имеют оператор switch.

Давайте возьмем наш пример DobClass сверху и перепишем его с помощью оператора Select Case.

Ниже приведен тот же код с использованием оператора Select Case. Главное, что вы заметите, это то, что мы используем “Case 85 to 100” rather than “marks >=85 And marks =85 And marks

Ответ на упражнение

Следующий код показывает, как выполнить вышеупомянутое упражнение.

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

Источник

Содержание

  • Список основных операторов сравнения в VBA
  • Равно
  • Не равно
  • Больше чем
  • Больше или равно
  • Меньше, чем
  • Меньше или равно
  • Оператор
  • Оператор Like

VBA позволяет использовать операторы сравнения для сравнения значений. Используя эти операторы, вы можете сравнивать значения и в результате возвращать логическое значение True или False.

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

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

Объяснение
=

Равно

Не равно

>

Больше чем

>=

Больше или равно

<

Меньше, чем

<=

Меньше или равно

Равно

В Равно Оператор проверяет, равны ли два значения, и возвращает True или False. Вот пример кода:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 5intB = 5Если intA = intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, intA равно intB. Если это правда, значение Boolean blnResult будет True, в противном случае — False.

Сначала мы устанавливаем значения intA а также intB к 5:

После этого воспользуемся = в операторе If, чтобы проверить, соответствуют ли значения intA а также intB равны:

12345 Если intA = intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

Обе переменные равны 5, поэтому blnResult возвращает True:

Изображение 1. Использование оператора Equal To

Не равно

В Нет Равно Оператор проверяет, не равны ли два значения, и возвращает True или False. Вот пример кода:

Произошла ошибка. Пожалуйста, попробуйте позже.

В этом примере мы хотим проверить, intA не равно intB. Если это правда, значение Boolean blnResult будет True, в противном случае — False.

Мы используем в операторе If, чтобы проверить, соответствуют ли значения intA а также intB разные:

12345 Если intA intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

Значение intA равно 5, а значение intB равно 6, переменные не равны, поэтому blnResult возвращает True:

Изображение 2. Использование оператора Not Equal To

Больше чем

В Больше чем Оператор проверяет, больше ли первое значение второго и возвращает True или False. Вот пример кода:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 6intB = 5Если intA> intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, intA больше, чем intB. Если это правда, значение Boolean blnResult будет True, в противном случае — False.

Кроме того, мы используем > в операторе If, чтобы проверить, имеет ли значение intA больше, чем intB:

12345 Если intA> intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В заключение, посколькуintA больше, чем intB, то blnResult возвращает True:

Изображение 3. Использование оператора «Больше, чем»

Больше или равно

В Больше или равно Оператор проверяет, больше ли первое значение второму или равно ему, и возвращает True или False. Вот пример кода:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 5intB = 5Если intA> = intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, intA Больше или равно intB. Если это правда, значение Boolean blnResult будет True, в противном случае — False.

Мы используем>= в операторе If, чтобы проверить, имеет ли значение intA Больше или равно intB:

12345 Если intA> = intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В заключение, поскольку обе переменные равны 5, blnResult возвращает True:

Изображение 4. Использование оператора «Больше или равно»

Меньше, чем

В Меньше, чем Оператор проверяет, меньше ли первое значение второго и возвращает True или False. Вот пример кода:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 5intB = 6Если intA <intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, intA меньше чем intB. Если это правда, значение Boolean blnResult будет True, в противном случае — False.

Мы используем < в операторе If, чтобы проверить, имеет ли значение intA меньше чем intB:

12345 Если intA <intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В качестве intA меньше чем intB, то blnResult возвращает True:

Изображение 5. Использование оператора «Меньше чем»

Меньше или равно

В Меньше или Равно Оператор проверяет, меньше ли первое значение или равно ему, и возвращает True или False. Вот пример кода:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 5intB = 5Если intA <= intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, intA меньше или равно intB. Если это правда, значение Boolean blnResult будет True, в противном случае — False.

Мы используем <= в операторе If, чтобы проверить, имеет ли значение intA меньше или равно intB:

12345 Если intA <= intB ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В заключение, поскольку обе переменные равны 5, blnResult возвращает True:

Изображение 6. Использование оператора «Меньше или равно»

Оператор

Оператор Is проверяет, содержат ли две объектные переменные один и тот же объект:

12345678910111213 Sub CompareObjects ()Dim ws1 как рабочий лист, ws2 как рабочий листУстановить ws1 = Sheets («Sheet1»)Установить ws2 = Sheets («Sheet2»)Если ws1 Is ws2, тоMsgBox «Тот же WS»ЕщеMsgBox «Различные WS»Конец, еслиКонец подписки

Оператор Like

Оператор Like может использоваться для поиска неточных текстовых совпадений. В этом примере проверяется, начинается ли строка с «Мистер».

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim blnResult As BooleanstrName = «Мистер Майкл Джеймс»Если strName Like «Mr *» ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, еслиКонец подписки

Если вы хотите узнать, как сравнивать строки, щелкните здесь: VBA Compare Strings — StrComp

Если вы хотите узнать, как использовать операторы сравнения, щелкните здесь: Логические операторы VBA

Понравилась статья? Поделить с друзьями:
  • Условие или в excel синтаксис
  • Условие или в excel примеры с несколькими условиями
  • Условие или в excel при условном форматировании
  • Условие или в excel на английском
  • Условие или excel миф