2 активных листа в Excel

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
OMEGUS
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 31.01.2005 (Пн) 11:40
Откуда: Санкт-Петербург

2 активных листа в Excel

Сообщение OMEGUS » 02.02.2005 (Ср) 11:10

Можно ли из VB в Excel открыть и деожать активными сразу два листа ?

Подскажите пожалуйста или дайте совет ?

Спасибо.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 02.02.2005 (Ср) 11:34

Код: Выделить всё
Dim xls As New Excel.Application
Dim xlc As New Excel.Application
Private Sub Command1_Click()
xls.Workbooks.Open App.Path & "\list1.xls"
xlc.Workbooks.Open App.Path & "\list2.xls"
End Sub

Вот так точно можно

OMEGUS
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 31.01.2005 (Пн) 11:40
Откуда: Санкт-Петербург

Сообщение OMEGUS » 02.02.2005 (Ср) 11:40

Спасибо....!!!

А я думал одного приложения хватит и открывал в книге еще один лист вот так :

Dim ExcApp As Excel.Application ' экземпляр приложения
Dim ExcExcel As Excel.Workbook ' экземпляр документа
Dim ExcSheetA As Excel.Worksheet
Dim ExcSheetB As Excel.Worksheet

Теперь все получится.. :-)

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 02.02.2005 (Ср) 11:48

Код: Выделить всё
ExcApp.Workbooks.Open App.Path & "\list1.xls"
ExcApp.Workbooks.Open App.Path & "\list2.xls"
MsgBox "", , ""


Можно и так

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 02.02.2005 (Ср) 13:04

Можно открывать один эксель и использовать Windows(i).ActiveSheet, тогда в разных окнах можно держать разные активные листы. Вопрос только - зачем? Чем активный лист принципиально отличается от всех остальных с точки зрения программы?
Быть... или не быть. Вот. В чём вопрос?

OMEGUS
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 31.01.2005 (Пн) 11:40
Откуда: Санкт-Петербург

Сообщение OMEGUS » 02.02.2005 (Ср) 13:14

2 uhm

Я хочу свериь данные из ячеек разных листов может подскажешь как можно обойтись без этого.... наверняка это как-то возможно...???

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 02.02.2005 (Ср) 13:21

:) Я так и думал. Разумеется, возможно.

Самый простой способ - использовать WorkSheets("имя_листа").Cells(i,j). Например,

Код: Выделить всё
If WorkSheets("Лист 1").Cells(1,1)=WorkSheets("Итог").Cells(10,2)...


будет сравнивать ячейку A1 на листе с именем "Лист 1" с ячейкой B10 на листе "Итог".

Можно работать чуть более удобно:

Код: Выделить всё
Dim sheet1 As WorkSheet, sheet2 As WorkSheet

Set sheet1=WorkSheets("Лист 1")
Set sheet2=WorkSheets("Итог")

...

If sheet1.Cells(1,1)=sheet2.Cells(10,2)...


OMEGUS
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 31.01.2005 (Пн) 11:40
Откуда: Санкт-Петербург

Сообщение OMEGUS » 02.02.2005 (Ср) 13:24

Класс! Спасибо...

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 03.02.2005 (Чт) 17:54

Просто сравнить, я так думаю, быстрее будет SQL запросом, который вернёт различия между листами.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Yandex-бот и гости: 169

    TopList