Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Excel_new.doc
Скачиваний:
97
Добавлен:
22.02.2015
Размер:
5.05 Mб
Скачать

Функции Application

Предположим, что в некотором программном модуле требуется вычислить сумму произведений соответствующих элементов двух массивов (скалярное произведение векторов). Безусловно, это можно выполнить организацией цикла (см. выше). Однако мы прекрасно помним, что в Excel имеется специальная функция, выполняющая упомянутую операцию. С целью определить ее название, а затем воспользоваться ею, запишем макрос с функцией СУММПРОИЗВ():

Sub Макрос1()

ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[-3]C[-1]:R[-1]C[-1],R[-3]C:R[-1]C)"

End Sub

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

Public Function product(a, b) As Single

product = Application.SumProduct(a, b)

End Function

    1. Операторы принятия решения

Специфика использования операторов принятия решений, условной и безусловной передачи управления в отличие от СИ заключается лишь в формате представления операторов.

      1. ОператорIf

Формат: if логическое_выражение then оператор - стандартный оператор Basic. В правой части может быть составной оператор (операторы разделяются двоеточием). Например, if x>a then x=a: y=b: z=x+y.

В операции отношения дополнительно к стандартным операциям (= , <, >, <=, >=, <>) включены:

Is - идентично (только для объектов), например в операторе If TypeOf MyControl Is CommandButton Then …;

Like - позволяет применять подстановочные символы: ? - любой символ, * любые символы, # - любая цифра, [CC] - список символов, [!CC] - исключая список символов.

Логические функции проверки величин возвращают Истину согласно табл. 4.1.

Таблица 4.33

Функция

True, если

Функция

True, если

Функция

True, если

IsArray()

Массив

Is Date()

Дата

IsNull()

Nul

IsEmpty()

Пустая строка

IsError()

Код ошибки

IsMissing()

Опущен

IsNumeric()

Число

IsObject()

Объект

Таблица 4.34

A

B

Not A

A And B

A Or B

A Xor B

A Imp B

A Eqv B

T

T

F

T

T

F

T

T

T

F

F

F

T

T

F

F

F

T

T

F

T

T

T

F

F

F

T

F

F

F

T

T

Блочная структура if

Формат

Пример

Пример

if логическое выражение then

if x>a then

If IsMissing (R) Then

блок операторов

x=a

y=b

z=x+y

R=5,25 ' один оператор, который не имело смысла выделять в отдельный блок

End if

End if

End if

Многоблочная структура if

Формат оператора

Пример

Комментарий

if логическое выражение then

if x>a then

Первое условие

блок операторов

y=b

z=5

Elseif логическое выражение then

Elseif x=a then

Следующее условие

блок операторов

y=c

Else

Else

блок операторов

y=d

z=0

Выполняется, если ни одно предыдущее условие не выполнено

End if

End if

Логические операции: Not (отрицание), And (Лог. "И"), Or (Лог. "ИЛИ"), Xor (исключающее "ИЛИ"), Imp (импликация), Eqv (эквивалентность) и результаты их выполнения представлены в табл. 4.2, где T – Истина, F – Ложь.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]