Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection7.docx
Скачиваний:
33
Добавлен:
31.03.2015
Размер:
55.51 Кб
Скачать
    1. Функции, возвращающие массивы

В качестве результата функция VBA может возвращать массив значений. Такая функция вставляется не в одну ячейку, а в диапазон, и вставка завершается нажатием клавиш Ctrl + Shift + Ввод.

Public Function GreaterThanAverage(m As Range) As Variant

Dim r() As Integer

Dim n As Integer, i As Integer, j As Integer

Dim av As Double

ReDim r(1 To m.Rows.Count, 1 To 1)

av = 0

For i = 1 To m.Rows.Count

For j = 1 To m.Columns.Count

av = av + m.Cells(i, j)

Next j

Next i

av = av / m.Rows.Count / m.Columns.Count

For i = 1 To m.Rows.Count

n = 0

For j = 1 To m.Columns.Count

If m.Cells(i, j) > av Then n = n + 1

Next j

r(i, 1) = n

Next i

GreaterThanAverage=r

EndFunction

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

  1. Параметры

Существуют две точки, где используется список параметров подпрограммы – заголовок процедуры или функции и вызов процедуры или функции. Параметры, записанные в заголовке, называются формальными, а параметры, записанные в вызове, –фактическими.

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

Список фактических параметров – это список вполне конкретных значений, которые реально передаются в подпрограмму и которые она обрабатывает. Мы рассматривали примеры вызова функции Average, в которых в функцию передавались конкретные диапазоны (A1:D5,B2:F7) и конкретные числа (10, число из ячейкиE14). Формальные параметры – это, в общем-то, абстракция. Фактические параметры должны реально существовать, т.е. это должны быть конкретные диапазоны, константы, числа, содержащиеся в конкретной ячейке. Можно провести аналогию с математическим выражением, записанным в общем виде с использованием переменных, например,x2 + y2. Можно построить график функции, исследовать свойства этого выражения, оперировать с ним в общем виде, но нельзя вычислить значение этого выражения, пока мы не подставим конкретные числа вместо переменныхxиy. Формальные параметры соответствуют переменным математического выражения, а фактические параметры – конкретным числам.

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

Список фактических параметров представляет собой список выражений, разделённых запятыми. Значения этих выражений подставляются вместо формальных параметров последова­тельно, т.е. значение первого фактического параметра – вместо первого формального параметра, значение второго фактического параметра – вместо второго формального параметра и т.д.

Список фактических параметров должен соответствовать списку формальных параметров по следующим критериям.

  1. По количеству.

  2. По типу.

  3. По порядку следования.

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