Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications стр.39
Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications стр.39

В ячейку A8 введем формулу

=Q(Al:A3;Bl:C2;Dl:E2)

Второй способ. В ячейку А6 введем формулу

{=(2*СУММ(А1:АЗ)+СУММПР0ИЗВ(В1:С2;01:Е2)Л2)/(1+ СУММКВ(А1:АЗ))}

или

{-(2*СУММ(А1:АЗ)+_

СУММ(В1:С2*01:Е2)Л2)/(1+СУММ(А1:АЗЛ2))}

Третий способ. На лист модуля вводится функция пользователя:

Function S(х, Ь, с As Variant) As Double Dim si, s2, s3 As Double

SI = Application.Sum(x)

s2 = Application.SumProduct(b, c)

s3 = Application.SurnSq x)

S = (2 * si + s2 Л 2)/(1 + s3) End Function

В ячейку A7 введем формулу

=S(Al:A3;Bl:C2;Dl:E2)

10. Операторы цикла

10.2. Оператор цикла For-Each-Next

Для перебора объектов из группы подобных объектов, например ячеек из диапазона или элементов массива, удобно использовать оператор цикла For-Each-Next.

Оператор цикла For-Each-Next имеет следующий синтаксис:

For Each Элемент In Группа

БЛ0К_0ПЕРАТ0Р0В

[Exit For]

БЛ0К_0ПЕРАТ0Р0В Next Элемент

Например, приводимая ниже процедура Знак заменяет все положительные числа диапазона ячеек А1:В2 знаком «+», все отрицательные числа - знаком «-», а нули оставляет без изменения ([2)]:

Option Explicit

Sub Знак ()

Dim с As Object

For Each с In Worksheets ("Лист1").Range("Al:B2") If IsNumeric(c.Value) Then

If c.Value > 0 Then c.Value = "+"

End If

If IsNumeric(c.Value) Then

If c.Value < 0 Then c.Value = End If

If IsNumeric(c.Value) Then

If c.Value = 0 Then c.Value = 0 End If Next с End Sub

В процедуре Знак использовалась функция IsNumeric (Выражение), которая возвращает True, если выражение может быть описано как числовое, и False - в противном случае.

Следующая процедура Цвет в зависимости от содержимого ячейки выделенной области, которая возвращается методом Selection, изменяет цвет ее фона. Кроме того, если содержимое ячейки положительно, то изменяется цвет, размер и тип шрифта ([2]).

Программирование в среде Visual Basic for Applications

Sub Цвет ()

Dim a As Object

For Each a In Selection

If IsNumeric(a.Value) Then If a.Value > 0 Then a.Interior.Colorindex = 8 a.Font-Bold = True a.Font.Colorindex = 5 a.Font.Size = 20 End If End If


⇐ Предыдущая Следующая ⇒
 
 
 
Powered by Exponenta