Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Понятие массива и его описание



Массивы представляют собой организованный набор однотипных переменных, компактно расположенных в оперативной памяти. Все элементы одного массива снабжаются общим идентификатором, вслед за которым в круглых скобках записываются один или несколько индексов, определяющих местоположение элемента в массиве.

Наиболее просто организованы одномерные массивы, являющиеся эквивалентами векторов. Двумерные массивы являются аналогами матриц. Первый индекс элемента двумерного массива определяет номер строки, а второй - номер столбца, на пересечении которых расположен элемент. Строки и столбцы нумеруются либо от единого, установленного заранее минимального значения индекса, либо от граничного значения, заданного одновременно с объявлением массива.

Массив, как и любую переменную, надо объявить.

Dim ИмяПеременной (Индексы) [ As Тип] [,ИмяПеременной (Индексы) [ As Тип]]…

Параметр                Описание

ИмяПеременной     Имя переменной, удовлетворяющее стандартным правилам именования переменных.

Индексы                  Размерности массива: допускается описание до 60 размерностей. Синтаксис:

                                 [Нижний To ] Верхний [,Нижний To ] Верхний]…

                                 Если нижний индекс не задан явно, нижняя граница массива определяется инструкцией Option Base . Если отсутствует Option Base , нижняя граница равна нулю.

Тип                          Тип данных массива.

Пример .

Dim B(3,3) As Single

Dim B(1 To 3,1 to 3) As Single

Dim A (12) As Integer

В VBA существует тесная связь между диапазонами и массивами. Допустимо как заполнение массива значениями из ячеек диапазона, так и заполнение диапазона ячеек элементами массива одним оператором присвоения. При этом массив должен быть объявлен как переменная типа Variant .

Задание 1 .

Option Base 1

Public A As Variant

Public m As Integer, n As Integer

Sub Массив ()

A = Selection.Value

n = Selection.Rows.Count

m = Selection.Columns.Count

End Sub

Sub Диапазон ()

Dim s As Single, i As Integer, j As Integer

s = 0

Массив

For i = 1 To n

For j = 1 To m

   s = s + A(i, j)

Next j

Next i ' Диапазон заполняется значениями

Range(Cells(1, 1), Cells(n, m)).Value = A

Cells(n + 1, m - 1) = " Сумма "

Cells(n + 1, m) = s

Cells(n + 2, m - 1) = " Среднее "

Cells(n + 2, m) = s / (n * m)

End Sub

Удобным способом задания одномерных массивов является функция
Array. Она преобразует список элементов, разделенных запятыми, в вектор из этих значений, и присваивает их переменной типа Variant.

Пример.


Sub МассивArray()

Dim Число As Variant

Число = Array (10,20)

Сумму = Число(0) + Число(1)

MsgBox Сумму

End Sub

Отобразится 30

Объект Range (диапазон)

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

Адресация ячеек может выполняться либо в формате А1, либо в формате R1C1.

Адресация ячеек рабочего листа в формате А1.

В формате A1 имя ячейки строится из имени столбца и номера строки, например C12. Название формата выбрано по имени левой верхней ячейки рабочего листа. Адреса ячеек в этом формате являются относительными. Если, например, диапазон с именем MyRange включает ячейки D6:E10, то ссылка MyRange(“A1”) будет означать ячейку, находящуюся в левом верхнем углу этого диапазона, а значит – ячейку D6 в абсолютной адресации. Наряду с относительными ссылками имеется возможность применения абсолютных ссылок на строку или столбец. Признаком абсолютной ссылки является знак ($), предшествующий имени строки и (или) столбца. Так что адреса C5, C$5, $C5, $C$5 в зависимости от контекста могут именовать одну и ту же или четыре разных ячейки.

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

Dim MyRange As Range

Set MyRange = Range(”C1:C4”)

MyRange.Range(”A1”) = 7

MyRange.Range(”A2”) = ”=A1+2”

MyRange.Range(”A3:A4”) = ”=A1+A2”

Первая инструкция объявляет имя MyRange как имя диапазона. Вторая инструкция создает объект MyRange, заданный диапазоном C1:C4. Третья инструкция задает ячейку C1 в абсолютных адресах. В инструкциях присвоения (четвертая и пятая строки) ссылки слева от знака равенства делаются относительно объекта MyRange, а ссылки справа от знака равенства привязаны к абсолютным адресам.


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 182; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь