Читайте также:
|
|
Создает на листе №2 рабочий книги таблицу, которая содержит информацию о поездах, которые отправляются до заданной станции в заданном интервале времени.
1. Заполнение формы:
2. Отображение результата на Листе №2:
Листинг
'====================================================================================
'Создает на 2 листе книги таблицу, которая содержит информацию о поездах, которые
'отправляются до заданной станции в заданном интервале времени
'====================================================================================
Private Sub CommandButton4_Click ()
'--------ОПИСАНИЕ ВНУТРЕННИХ ПЕРЕМЕННЫХ----------
Dim destination As String ' Станция назначения
Dim st_hour_s As Integer ' Час отправления (с)
Dim st_min_s As Integer ' Минута отправления (с)
Dim st_time_s As Date ' Время отправления в формате ЧЧ:ММ (с)
Dim st_hour_t As Integer ' Час отправления (до)
Dim st_min_t As Integer ' Минута отправления (до)
Dim st_time_t As Date ' Время отправления в формате ЧЧ:ММ (до)
Dim train_id As String ' Номер поезда
Dim tic_coupe As Integer ' Количество билетов в купе
Dim tic_reserve As Integer ' Количество билетов в плацкарт
Dim i, j As Integer ' Счетчики для циклов
'------------СБОР ДАННЫХ С ИНТЕРФЕЙСА------------
destination = TextBox13.Value
' Час отправления строго типизирован - отслеживаем ошибки:
On Error GoTo m_error_8
st_hour_s = TextBox14.Value
' Диапазон часов - от 0 до 23:
If ( st_hour_s < 0 Or st_hour_s > 23) Then GoTo m_error_8
' Минута отправления строго типизирована - отслеживаем ошибки:
On Error GoTo m_error_8
st_min_s = TextBox15.Value
' Диапазон минут - от 0 до 59:
If ( st_min_s < 0 Or st_min_s > 59) Then GoTo m_error_8
' Формируем строку с временем отправления поезда:
st_time_s = CDate ( st_hour_s & ":" & st_min_s )
' Час отправления строго типизирован - отслеживаем ошибки:
On Error GoTo m_error_8
st_hour_t = TextBox16.Value
' Диапазон часов - от 0 до 23:
If ( st_hour_t < 0 Or st_hour_t > 23) Then GoTo m_error_8
' Минута отправления строго типизирована - отслеживаем ошибки:
On Error GoTo m_error_8
st_min_t = TextBox17.Value
' Диапазон минут - от 0 до 59:
If ( st_min_t < 0 Or st_min_t > 59) Then GoTo m_error_8
' Формируем строку с временем отправления поезда:
st_time_t = CDate ( st_hour_t & ":" & st_min_t )
'--------------ПОИСК ПО ПАРАМЕТРАМ---------------
i = 1 ' Счетчик строк (Лист 1)
j = 1 ' Счетчик строк (Лист 1)
Worksheets ( "Лист2" ). Cells.ClearContents ' Очистка листа №2
' Заполняем шапку таблицы:
Лист2.Cells ( j, 1). Value = "Номер поезда"
Лист2.Cells ( j, 2). Value = "До станции:"
Лист2.Cells ( j, 3). Value = "Отправление"
Лист2.Cells ( j, 4). Value = "в купе"
Лист2.Cells ( j, 5). Value = "в плацкарте"
j = j + 1
Do
i = i + 1 ' Считаем очередную строку
' Ищем совпадения:
If ( Лист1.Cells ( i, 2). Value = destination ) And _
( CDate ( Лист1.Cells ( i, 4). Value ) >= st_time_s And CDate ( Лист1.Cells ( i, 4). Value ) <= st_time_t ) Then
' Нашли нужную запись - визуализируем на листе №2:
Лист2.Cells ( j, 1). Value = Лист1.Cells ( i, 1)
Лист2.Cells ( j, 2). Value = Лист1.Cells ( i, 2)
Лист2.Cells ( j, 3). Value = CDate ( Лист1.Cells ( i, 4))
Лист2.Cells ( j, 4). Value = Лист1.Cells ( i, 6)
Лист2.Cells ( j, 5). Value = Лист1.Cells ( i, 7)
j = j + 1
' Все ли записи проверили?
ElseIf ( Лист1.Cells ( i, 3). Value = "" ) Then
GoTo m_success: ' Список закончился
End If
Loop Until ( False )
GoTo m_success ' Все операции выполнены без ошибок
'------БЛОК ОБРАБОТКИ ВНЕШТАТНЫХ СИТУАЦИЙ--------
m_error_8:
MsgBox "Ошибка при вводе ВРЕМЕНИ ОТПРАВЛЕНИЯ!"
Exit Sub
'----ДИАГНОСТИКА УСПЕШНОГО ВЫПОЛНЕНИЯ ЗАДАЧИ-----
m_success:
MsgBox "Данные, удовлетворяющие параметрам, помещены на Лист №2."
End Sub
Дата добавления: 2015-10-29; просмотров: 172 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Добавление данных | | | Сортировка (по выбранному параметру) |