просмотр открытых книг EXCELa из VB-кода

Программирование на Visual Basic for Applications
OutSider
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 27.06.2003 (Пт) 10:22
Откуда: Санкт-Петербург

просмотр открытых книг EXCELa из VB-кода

Сообщение OutSider » 19.08.2003 (Вт) 22:19

В VB-приложении мне надо определить, открыта ли книга с именем файла sFileName или еще нет. Использую слдедующий код:

Код: Выделить всё
Dim ii As Integer, flag As Boolean, XL As Object, Book as Object
        Set XL = CreateObject("Excel.sheet")
.  .   .   .   .   .   .   .   .    .   .   .   .   .   .   .
        ii=1
        flag = True
        Do While ii <= XL.Application.Workbooks.Count And flag
            If XL.Application.Workbooks.Item(ii).FullName = sFileName Then
                flag = False
            Else
                ii = ii + 1
            End If
        Loop
        If ii > XL.Application.Workbooks.Count Then
             'такой открытой книги нет
             Set Book = XL.Application.Workbooks.Open(sFileName)
        else
             ' книга уже открыта
            Set Book = XL.Application.Workbooks.Item(ii)
        End If


Что происходит: после первого чтения свойства XL.Application.Workbooks.Count в EXCELe появляется книга с названием Object. Затем открывается моя искомая книга. Книга Object продолжает висеть в EXCELe до тех пор, пока не будет закрыта моя книга. Вопрос: что такое книга Object, почему она создается? Мой код, в принципе, правилен? Или эту задачу можно реализовать по другому?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 20.08.2003 (Ср) 11:20

Вообще то можно сделать так:

Код: Выделить всё
set xl=getobject(,"Excel.Application")
for each book in xl.workbooks
if book.fullname = sfilename then flag = true:exit for
next book

OutSider
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 27.06.2003 (Пт) 10:22
Откуда: Санкт-Петербург

просмотр открытых книг EXCELa из VB-кода

Сообщение OutSider » 20.08.2003 (Ср) 17:10

Этот вариант выглядит красивее. Но мне все-таки интересно, что за книга Object создается в моем варианте при чтении свойства Count?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67

    TopList