ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.03.2025
Просмотров: 134
Скачиваний: 1
Dim sum As Double, threshold As Double, i As Integer
sum = 0
threshold = 100
For i = 1 To 100
sum = sum + sqr(i)
If sum > threshold
Exit For
End If
Next i
'Сумма значений ячеек диапазона
Dim r as Range
Dim sum As Double
Dim i As Integer, j As Integer
sum = 0
For i = 1 To r.Rows.Count
For j = 1 To r.Columns.Count
sum = sum + r.Cells(i, j)
Next j
Next i
'Количество положительных значений в ячейках диапазона
Dim r as Range
Dim k As Integer
Dim i As Integer, j As Integer
k = 0
For i = 1 To r.Rows.Count
For j = 1 To r.Columns.Count
If r.Cells(i, j) > 0 Then k = k + 1
Nextj
Nexti
В языке VBA можно также использовать ещё четыре разновидности цикла.
Do [{While | Until} <условие>]
<инструкции>
[Exit Do]
<инструкции>
Loop
Do
<инструкции>
[Exit Do]
<инструкции>
Loop [{While | Until} <условие>]
Работа с объектами и коллекциями
Конструкция With – End Withпозволяет выполнить несколько операций над одним объектом.
With <объект>
<инструкции>
End With
With Selection.Font
.Bold = True
.Italic = True
.Size = 14
.Name = Cambria
End With
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Size = 14
Selection.Font.Name=Cambria
Код с использованием конструкции With – End Withвыполняется быстрее, чем аналогичный код без этой конструкции. При записи макросов конструкцияWith – End Withприменяется при каждой возможности.
Конструкция For Each – Nextпозволяет обработать все элементы какой-либо коллекции.
ForEach<элемент>In<коллекция>
<инструкции>
[ExitFor]
<инструкции>
Next<элемент>
'Вывод имён всех рабочих листов в активной рабочей книге
Dim item As Worksheet
For Each item In ActiveWorkbook.Worksheets
MsgBox item.Name
Next item
'Закрытие всех рабочих книг, кроме активной
Dim book As Workbook
For Each book In Workbooks
If book.Name <> ActiveWorkbook.Name Then book.Close
Next book
'Выделение первой ячейки в диапазоне, имеющей отрицательное значение
Dim cell As Range
For Each cell In Selection
If cell.Value < 0 Then
cell.Select
Exit For
End If
Next cell