Сохранение файла
Sub СохранениеНовогоФайла(Стиль, Имя)
Dim Path, НовоеИмя As String
Dim i As Integer
КолУчастников = 0
НомерСтроки = 2
Workbooks("Участники соревнований.xls").Activate
'Данные об участниках считываем в массив
While Cells(НомерСтроки, 1).Value <> ""
If Cells(НомерСтроки, 3).Value = Стиль And _
Cells(НомерСтроки, 6).Value = Пол Then
КолУчастников = КолУчастников + 1
End If
НомерСтроки = НомерСтроки + 1
Wend
If КолУчастников = 0 Then
MsgBox ("Не найдено строк, удовлетворяющих условию!")
End
End If
Path = "E:\Соревнования\Участники"
Папка = Dir(Path, vbDirectory)
If Папка = "" Then
MkDir (Path)
End If
НовоеИмя = LCase(Имя)
Path = "E:\Соревнования\Участники\" & Стиль & "-" & _
НовоеИмя & .xls"
For i = 1 To Workbooks.Count
If Workbooks(i).Name = Стиль & "-" & НовоеИмя & ".xls" Then
Workbooks(i).Save
Exit For
End If
Next i
If Dir(Path) = "" Then
Application.SheetsInNewWorkbook = 1
Workbooks.Add
ActiveSheet.Name = Date
ActiveWorkbook.SaveAs Filename:=Path
Else
Сообщение = vbYesNo + vbQuestion + vbDefaulfButton1
Кнопка = MsgBox("Файл " & Filename & " уже существует. _
Заменить его?", Сообщение)
Select Case Кнопка
'При согласии на замену:
Case vbYes
For i = 1 To Workbooks.Count
If Workbooks(i).Name = Стиль & "-" & _
НовоеИмя & ".xls" Then
Workbooks (Стиль & "-" & _
НовоеИмя & ".xls").Close _ saveChanges:=False
Exit For
End If
Next i
Kill Path
'Создаем книгу заново
Application.SheetsInNewWorkbook = 1
Workbooks.Add
ActiveSheet.Name = Date
ActiveWorkbook.SaveAs Filename:=Path
Case vbNo
При отказе от замены выходим из программы
End
End Select
End If
End Sub
Существование
Sub СуществованиеФайла()
Dim Path, Папка, ИмяФайла As String
Dim i As Integer
'Проверим существование папки Соревнования:
Path = "E:\Соревнования"
Папка = Dir(Path, vbDirectory)
'Создаем папку, если ее не существует
If Папка = "" Then
MkDir ("E:\Соревнования")
MsgBox ("Папка Соревнования не найдена!")
End
End If
'Проверяем существование книги
If Dir("D:\Соревнования\Участники соревнований.xls") = "" Then
MsgBox "Файл Участники соревнований.xls не найден!", _ vbInformation
End
End If
'Проверяем, открыта ли книга Участники соревнований.xls:
ИмяФайла = "Участники соревнований.xls"
Path = "D:\Соревнования\Участники соревнований.xls"
For i = 1 To Workbooks.Count
If Workbooks(i).Name = ИмяФайла Then
Workbooks(i).Save
Workbooks(i).Activate
Exit Sub
End If
Next i
Workbooks.Open Filename:=Path
End Sub
Sub СуществованиеЛиста()
flag = 0
For i = 1 To Worksheets.Count
If Worksheets(i).Name = "Участники" Then
flag = 1
Exit For
End If
Next i
If flag = 1 Then
Sheets("Участники").Select
Else
MsgBox "Лист Участники не найден!", vbInformation
End
End If
End Sub
План тестирования программы
Папка E:\Соревнования не существует: Программа выводит на экран информационное сообщение о том, что папка Соревнования не найдена и создает папку на дискеE:\. Программа завершает работу.
Папка Соревнования существует: Программа проверяет, есть ли в этой папке файл Участники соревнований.xls.
Файл Участники соревнований.xlsне существует: Программа выводит на экран информационное сообщение о том, что файл Участники соревнований.xlsне найден в ПапкеE:\Соревнования. Программа завершает работу.
Файл Участники соревнований.xlsсуществует: Программа проверяет открыта книга Участники соревнований.xlsили закрыта.
Книга Участники соревнования.xlsзакрыта: Программа открывает файл Участники соревнований.xls.
Книга Участники соревнований.xlsоткрыта: Программа начинает работу с БД.
Лист «Участники» не существует в книге Участники соревнований.xls: Программа выводит на экран информационное сообщение о том, что лист «Участники» не найден в книге Участники соревнований.xls. Программа завершает работу.
Лист «Участники» существует в книге Участники соревнований.xls: Программа активирует лист «Участники» в книге Участники соревнований.xls.
Нет записей в БД, удовлетворяющих условию: Программа выводит на экран информационное сообщение о том, что поиск информации в БД по выбранным пользователям критериям не дал результатов. Программа завершает работу.
Папка для сохранения конечного файла не существует: Программа создает папку для сохранения конечного файла.
Папка для сохранения конечного файла существует: Программа начинает проверку существования в этой папке конечного файла с таким же названием, как сформировал пользователь.
Конечный файл не существует: Программа сохраняет сформированную таблицу в папку. Программа завершает работу.
Конечный файл с таким же названием уже существует в папке: Программа предлагает пользователю заменить существующий на данный момент в папке файл тем, который он создал только что.
Если пользователь отвечает «Да», то:
если старый файл в данный момент открыт в Excel, то Программа закрывает его без сохранения изменений (если таковые были), удаляет его из папки, сохраняет новый созданный файл в папку. Программа завершает работу.
Если старый файл в данный момент не открыт в Excel, то Программа удаляет старый файл из папки, сохраняет созданный файл в папку. Программа завершает работу.
Если пользователь отвечает «Нет», то:
Если старый файл в данный момент открыт в Excel, то Программа не сохраняет новый созданный пользователем файл, а старый файл оставляет открытым вExcel.
Если старый файл в данный момент не открыт в Excel, то Программа не сохраняет новый созданный пользователем файл, старый файл остается в папке. Программа завершает работу.