Изучение VBA. Обработка записей (Лабораторная работа № 5), страница 2

For i = 1 To n

Кадр(i).Фамилия = InputBox("Введите фамилию", "Ввод данных о сотруднике")

Кадр(i).Имя = InputBox("Введите имя", "Ввод данных о сотруднике")

Кадр(i).Табельный_номер = InputBox("Введите табельный номер", "Ввод данных о сотруднике")

Кадр(i).Должность = InputBox("Введите должность", "Ввод данных о сотруднике")

Кадр(i).Оклад = InputBox("Введите оклад", "Ввод данных о сотруднике")

'выводим эти значения в i-тый столбец таблицы Excel

Cells(1, i) = Кадр(i).Фамилия

Cells(2, i) = Кадр(i).Имя

Cells(3, i) = Кадр(i).Табельный_номер

Cells(4, i) = Кадр(i).Должность

Cells(5, i) = Кадр(i).Оклад

Next i

End Sub

II Практическое применение

Решим следующую задачу:

Создать список лазерных дисков.

      1.  Описать и вывести массив, содержащий 5 записей следующей структуры:

название, год выпуска, количество, цена.

  1. Вывести массив в табличном виде.
  2. Вывести названия дисков, цена партии которых превышает 1000 руб..

4. Найти самый новый диск по году выпуска.

Type структура_диска

        Название As String * 20

        Год_выпуска As Integer

Количество As Integer

Цена As Integer

End Type

Sub База_Данных_о_сотрудниках()

Dim Диск() As структура_диска

'для очищения ячеек от предыдущих заполнений используем конструкцию:

Range("A1:H100").Select 'выделим диапазон ячеек с А1 по Н100

Selection.Clear 'очистимэтотдиапазон

Range("A1").Select

'введем названия столбцов таблицы

Range("A1").Value = "Название"

Range("B1").Value = "Год выпуска"

Range("C1").Value = "Количество"

Range("D1").Value = "Цена"

Range("A2").Select 'перейдем в ячейку А1,чтобы с неё начать заполнение

'введем количество записей

n = InputBox("Введите количество записей")

'переназначим безразмерному массиву размер, равный тому, что ввели с клавиатуры

ReDim Диск(n)

'присваиваем значения полям i-той записи

For i = 1 To n

Диск(i).Название = InputBox("Введите название", "Ввод данных о диске")

Диск(i).Год_выпуска = InputBox("Введите год выпуска", "Ввод данных о диске")

Диск(i).Количество = InputBox("Введите количество", "Ввод данных о диске")

Диск(i).Цена = InputBox("Введите цену", "Ввод данных о диске")

Next i

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

'так как первая строка занята названиями столбцов, то

'ввод начнется со второй строки, т.е. первая координата i ячейки будет

'изменяться начиная с 2, при этом последняя адресация будет на 1 больше

'чем общее количество записей, т.е. n+1 (количество итераций цикла все-таки должно

'быть равным количеству записей)

'чтобы использовать ту же переменную j и в номерах записей

'но начать записывать в ячейки с первой записи, то в шаблоне номера записи

'запишем j-1

For j = 2 To n + 1

Cells(j, 1) = Диск(j - 1).Название

Cells(j, 2) = Диск(j - 1).Год_выпуска

Cells(j, 3) = Диск(j - 1).Количество

Cells(j, 4) = Диск(j - 1).Цена

Next j

'сформируем строку из названий дисков, цена партии которых превышает 1000р.

For i = 1 To n

'в переменной у находим произведение количества и цены каждого диска

y = Диск(i).Количество * Диск(i).Цена

 'если оно >1000, то добавить поле Название записи Диск к строке str_nazv

If y > 1000 Then