Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Так как количество записей заранее неизвестно, воспользуемся управляющей структурой While-Wend (строки 8¸12, подробнее см.8.4). Эта конструкция позволяет выполнять группу инструкций до тех пор, пока соблюдается некоторое условие (в данном примере – вторая ячейка в строке не должна быть пустой[11]).
Просматривая БД, считаем количество доцентов и запоминаем его в переменной КолДоцентов.
После того как все записи БД «просмотрены», ещё раз объявляем динамический массив как двумерный массив с известным количеством записей (строка 13). Далее заполняем этот массив записями, отвечающими заданному критерию отбора (строки 14¸20).
3.6. Сохранение данных в динамическом массиве
при изменении последней размерности
В рассмотренном примере наблюдается такая несуразица, как двойная проверка условия «Должность = Доцент»: первый раз соответствие записи этому критерию осуществлялось при подсчете количества записей, а второй раз – при выборке информации. Возникает вопрос: а возможно ли при нахождении нужной записи сразу добавлять информацию в динамический массив? Оказывается, да, возможно. Для этого используется ключевое слово Preserve (сохранить). Следующий код демонстрирует эту возможность:
Sub МассивДоценты_СохранениеДанных()
Dim Сотрудники() As String
Dim КолДоцентов As Integer
Dim НомерСтроки As Integer
КолДоцентов = 0
НомерСтроки = 3
While Cells(НомерСтроки,2).Value <> ""
If Cells(НомерСтроки,3).Value = "Доцент" _
Then КолДоцентов = КолДоцентов + 1
ReDim Preserve Сотрудники(3,КолДоцентов)
Сотрудники(1,КолДоцентов) = _
Cells(НомерСтроки,1).Value
Сотрудники(2,КолДоцентов) = _
Cells(НомерСтроки,2).Value
Сотрудники(3,КолДоцентов) = _
Cells(НомерСтроки,3).Value
End If
НомерСтроки = НомерСтроки + 1
Wend
MsgBox "Массив сформирован! В нем содержится " _
& КолДоцентов & " записей."
Дата публикования: 2014-11-26; Прочитано: 186 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!