ТОП 10:

VBA: Операторы присваивания. Булевы операторы



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

Оператор присвоения— это инструкция VBA , выполняющая математическое вычисление и присваивающая результат переменной или объекту.

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

В VBA оператором присвоения выступает знак равенства (=).

Примеры использования операторов присвоения (выражения приводятся справа от знака равенства):

х = 1

X = X + 1

х = ( у * 2) !( г * 2) FileOpen = True FileOpen = Not FileOpen Range С "The Year").Value = 2001

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

Зачастую в выражениях применяются функции. Это могут быть встроенные функции VBA , функции рабочих листов Excel или специальные функции, разработанные в VBA .

Булевы операторы VBA

Таблица. Булевы операторы VBA
Оператор Действие
not Логическое отрицание выражения
And Логическая конъюнкция двух выражений
Or Логическая дизъюнкция двух выражений
xoR Логическое отрицание двух выражений
Eqv Логическая эквивалентность двух выражений
imp Логическая импликация двух выражений

VBA: Использование конструкции If-Then-Else

Оператор if.. .Then.. .Else — стандартный оператор ветвления. Его исполь­зование позволяет проверить некоторое условие и, в зависимости от его ис­тинности, выполнить ту или иную группу операторов.

Для данного оператора есть два варианта синтаксиса — в одну строку, и в несколько:

If условиеThen [блокОператоров1] [Else блокОператоров2]

ИЛИ

If условие1 Then

[блокОператоров 1]

[Elself условиеN Then

[блокОператоровN]]...

[Else

[блокОператоров_Е1зе]]

End If

9. VBA: Цикл For-Next(+Step)

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

 

For Cчетчик=Начальное значениеToКонечное значение[Stepшаг]

Операторы блока S

Next [счетчик]

Операторы блока S называется телом цикла. Строка, начинающаяся с ключевого слова For, – заголовком цикла, строка с ключевым словом Next – концом цикла.

В начале выполнения цикла значение Счетчик устанавливается в Начальное значение. При каждом “проходе” цикла переменная Счетчик увеличивается на величину шага. Если она достигает Конечное значение, то цикл завершается и выполняются следующие за ним операторы.

Правила

Типы данных. Типом данных counter является обычно Integer, но может быть любой тип, поддерживающий операторы больше или равно (>=), меньше или равно (<=), а также операторы сложения (+) и вычитания (-). Он даже может определяемым пользователем типом, если тот поддерживает все эти операторы.

Выражения start, end и step обычно приводятся к типу Integer, но могут быть приведены к любому большему по разрядности типу, чем тип counter. При использовании определяемого пользователем типа для counter это означает, что может потребоваться определить оператор преобразования CType для преобразования типов start, end или step к типу counter.

Объявление. Если counter не был объявлен вне цикла, то его нужно объявить в операторе For. В этом случае областью действия counter является тело цикла. В то де время, нельзя определять counter и внутри, и снаружи цикла.

Число итераций. Visual Basic вычисляет значения итераций start, end и step только один раз перед началом цикла. Если в блоке операторов значение endили step изменяется, то это изменение не оказывает влияния на повторение цикла.

Вложенные циклы. Циклы For могут вкладываться друг в друга. При этом каждый цикл должен иметь уникальную переменную counter.

Определение управляющих переменных. Можно дополнительно указать counter в инструкции Next. Это повышает удобочитаемость программы, особенно если имеются вложенные циклы For. Следует указать ту же переменную, что и в соответствующем операторе For.

Выход из цикла.Оператор Exit (Visual Basic) немедленно передает управление оператору, следующему за оператором Next. Выход из цикла может потребоваться при обнаружении условия, которое делает бесполезным или невозможным продолжение итераций, например ошибочное значение или запрос на завершение. Кроме того, если происходит перехват исключения в Try... Catch... Finally, то можно использовать Exit For в конце блока Finally.

Можно установить любое число операторов Exit For в любом месте цикла For. Exit For часто используется после оценки некоторого условия, например в структуре If... Then... Else.

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

Поведение

Вход в цикл. При начале выполнения цикла For...Next Visual Basic вычисляет start, end и step только один раз. Затем назначается значение startпеременной counter. Перед выполнением блока операторов сравниваются counter и end. Если значение counter превысило конечное значение, то цикл Forзавершается, а управление передается оператору, следующему после Next. В противном случае выполняется блок операторов.

Итерации цикла. Каждый раз при обнаружении оператора Next Visual Basic увеличивает counter на step и возвращается к оператору For. После этого сравниваются counter и end, и в зависимости от результата происходит либо выполнение блока, либо завершение цикла. Этот процесс продолжается до тех пор, пока counter не превысит end, или не встретится оператор Exit For.

Завершение цикла. Цикл не завершается до тех пор, пока counter не превысит end. Если counter равен end, то цикл продолжается. Сравнением, определяющим, следует ли выполнять блок, является counter <= end для положительного step и counter >= end для отрицательного step.

Изменение значений итерации. Изменение значения counter внутри тела цикла может осложнить читаемость и отладку кода. Изменение значений start,end или step не влияет на значения итерации, определенные при первом входе в цикл.

Можно писать после For i=1 to 10 Step 2 это тоже самое, что i=i+2

VBA: Цикл Do While

Типы циклов Do

Sub Main()

Dim число As Single

Dim повторения As Integer

повторения = О

число = 25

'Цикл Do первого типа

Do While число - 1 >= 0.01

число = Sqr(число)

повторения = повторения +1

Loop

MsgBox (повторения)

повторения =0

число = 25

'Цикл Do второго типа

Do

число = Sqr(число)

повторения = повторения + 1

Loop While число- 1 >= 0.01
MsgBox (повторения)
повторения = О
число =25

'Цикл Do третьего типа

Do Until число- 1 < 0.01

число = Sqr(число)

повторения = повторения + 1
Loop

MsgBox (повторения)

повторения =0

число =25

'Цикл Do четвертого типа

Do

число = Sqr(число)

повторения = повторения +1
Loop Until число- 1 < 0.01
MsgBox (повторения)
End Sub

В цикле Do первого типа условие проверяется до начала выполнения повторяю­щихся инструкций. Если условие оказывается выполненным (при вычислении логического выражения получается значение ИСТИНА), инструкции, заключенные между инструкциями Do и Loop (тело цикла), выполняются однократно, затем управление снова передается на инструкцию Do, и процесс повторяется. Если управляющее условие не выполняется, то повторяющаяся группа инструкций пропускается и выполняется инструкция, следующая непосредственно за инст­рукцией Loop.

В цикле Do второго типа условие проверяется после выполнения тела цикла. Цикл повторяется, пока управляющее условие выполняется.

В цикле Do третьего типа условие проверяется до начала выполнения повто­ряющихся инструкций, но тело цикла выполняется только в том случае, когда управляющее условие не выполнено (при вычислении логического выражения получается значение ЛОЖЬ).

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







Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.172.213 (0.006 с.)