Основы офисного программирования и язык VBA


Коллекция Workbooks - часть 3


В процессе открытия происходит анализ и разбор данных, записанных в текстовом файле. Метод имеет 13 параметров, из которых обязателен лишь первый - FileName, задающий имя текстового файла.

Приведем теперь пример программы, позволяющий продемонстрировать детали работы с коллекцией WorkBooks. Наша коллекция будет включать как новые, создаваемые в программе, так и ранее существовавшие книги. Книги будут добавляться в коллекцию и удаляться. Отладочная печать позволит проследить за этим процессом.

Public Sub WorkWithbooks() ' Работа с коллекцией книг Dim N As Long, i As Byte Dim PathDir As String PathDir = "e:\O2000\CD2000\Ch1\" With Workbooks N = .Count Debug.Print "Число рабочих книг в коллекции Workbooks " & _ "при открытии приложения Excel = ", N ' Добавление 2-х новых книг .Add .Add 'Добавление двух существующих книг .Open (PathDir & "BookThree.xls") .Open (PathDir & "BookFive.xls") N = .Count Debug.Print "Число книг после 2-х вызовов методов Add и Open =", N Debug.Print "Имена книг в коллекции:" For i = 1 To .Count Debug.Print .Item(i).Name Next 'Закрытие двух книг и, следовательно, удаление их из коллекции .Item(2).Close .Item(3).Close N = .Count Debug.Print "Число книг после двух вызовов метода Close =", N Debug.Print "Имена книг, оставшихся в коллекции:" For i = 1 To .Count Debug.Print .Item(i).Name Next End With

End Sub

Пример 1.3.

Вот результаты отладочной печати:

Число книг в коллекции WorkBooks при открытии приложения Excel =1 Число книг после 2-х вызовов методов Add и Open = 5 Имена книг в коллекции: BookOne.xls Book4 Book5 BookThree.xls BookFive.xls Число книг после двух вызовов метода Close = 3 Имена книг, оставшихся в коллекции: BookOne.xls Book5 BookFive.xls

Поясним пример. При открытии Excel коллекция WorkBooks состоит из одной открытой книги, в данном случае - книги с именем BookOne. Затем метод Add добавил в коллекцию две новые книги, которые получили имена " Book1 " и " Book2 " соответственно.Еще две книги появляются в коллекции при открытии существующих книг. Затем две книги закрываются, следовательно, удаляются из коллекции. Обратите внимание, удаляются 2-я и 4-я книги коллекции, хотя индексы удаляемых книг имеют значение 2 и 3. Это связано с тем, что после каждого удаления элемента коллекции происходит перенумерация, и книги получают новые индексы.

Если при работе с элементами коллекции выполняется операция удаления, то работать с индексами элементов крайне опасно, предпочтительнее для задания элементов указывать их имена!




Начало  Назад  Вперед



Книжный магазин