Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Понятие массива и его описание
Массивы представляют собой организованный набор однотипных переменных, компактно расположенных в оперативной памяти. Все элементы одного массива снабжаются общим идентификатором, вслед за которым в круглых скобках записываются один или несколько индексов, определяющих местоположение элемента в массиве. Наиболее просто организованы одномерные массивы, являющиеся эквивалентами векторов. Двумерные массивы являются аналогами матриц. Первый индекс элемента двумерного массива определяет номер строки, а второй - номер столбца, на пересечении которых расположен элемент. Строки и столбцы нумеруются либо от единого, установленного заранее минимального значения индекса, либо от граничного значения, заданного одновременно с объявлением массива. Массив, как и любую переменную, надо объявить. 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 Удобным способом задания одномерных массивов является функция Пример. 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; Просмотров: 183; Нарушение авторского права страницы