Давно не был на форуме. Здравствуйте...

Программирование на Visual Basic for Applications
Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Давно не был на форуме. Здравствуйте...

Сообщение Rust » 24.05.2007 (Чт) 9:49

Как считать в переменную индекс вновь созданной книги Excel.
Пример: (первая строка кода заведомо ошибочна)

wb = ActiveWorkbook.Index
Workbooks(wb).Close (0)

Заранее благодарен.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.05.2007 (Чт) 9:51

А зачем тебе индекс?
У тебя есть ссылка, есть ключ.
Lasciate ogni speranza, voi ch'entrate.

Pavel55
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 27.10.2006 (Пт) 20:11

Сообщение Pavel55 » 24.05.2007 (Чт) 9:58

Можно попробывать что-нить такое

Код: Выделить всё
Sub Macro1()
    Dim newWB As Workbook
    Set newWB = Workbooks.Add
    Workbooks(newWB.Name).Close (0)
End Sub


или

Код: Выделить всё
Sub Macro2()
    Dim i&
    Workbooks.Add
    i = Application.Workbooks.Count
    Workbooks(i).Close (0)
End Sub

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 24.05.2007 (Чт) 10:04

Можно конечно так:
wb = ActiveWorkbook.Name
Workbooks(wb).Close (0)

Но хотелось понять, в каком свойстве лежит Index

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 24.05.2007 (Чт) 10:07

Спасибо!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.05.2007 (Чт) 10:08

Я повторю вопрос Алибека, который и Rust, и Pavel55 проигнорировали.

Зачем тебе индекс, если у тебя уже есть ссылка на объект?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 24.05.2007 (Чт) 10:16

1. Одновременно открыто много файлов Excel.
2. Создаётся новая книга, в которой производятся некие вычисления.
3. Могут быть созданы ещё новые книги.
4. Книгу из пункта два надо закрыть.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.05.2007 (Чт) 10:21

И кто тебе мешает?
Set wb = ActiveWorkbook
...
wb.Close
Lasciate ogni speranza, voi ch'entrate.

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 24.05.2007 (Чт) 10:24

Спасибо!


Вернуться в VBA

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

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

    TopList