Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

End Sub. Так как количество записей заранее неизвестно, воспользуемся управляющей структурой While-Wend (строки 8¸12



Так как количество записей заранее неизвестно, воспользуемся управляющей структурой 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...