ComboBox данные из другой книги экселя
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



ComboBox данные из другой книги экселя Expand / Collapse
Автор
Сообщение
15.07.2005 14:07
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 29.03.2006 9:17
Сообщ.: 22, Visits: 243
забыл как сделать чтобы в комбобоксе отображались данные из другой книги и чтобы при этом она не была открыта. я и макрос такой потерял :( а теперь вот не могу вспомнить. может кто подскажет?
Большое спасибо!!!

Иван.
Сообщ. #875652
15.07.2005 14:32


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.01.2007 17:15
Сообщ.: 1 089, Visits: 11 975
Dim WS as Worksheet
Set WS = "Нужная книга"
CBO.clear
и т.д.
***
set WS = Nothing
Сообщ. #875660
15.07.2005 16:29
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 29.03.2006 9:17
Сообщ.: 22, Visits: 243
а если не затруднит можно полный макрос?
я не так делал.
я делал workbook.activate и т.д.

Иван.
Сообщ. #875684
15.07.2005 17:29


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.01.2007 17:15
Сообщ.: 1 089, Visits: 11 975
Это не макрос..это одно из правил. для VBA. точнее их можно и не придерживаться.. кому как... :-)
Обьясняю...
Обьявляю переменную... Жизненый цикл ее как у всех переменных...
Dim WS as Worsheet
Далее инициирую ее..
Set WS=ActivSheet
Тереь моя переменная WS указывает На активный лист(на данный момент). и не важно как она называлась или в какой книге нажодится. Нам это и как бы уже не очень интересно...
Допустим у нас есть Новая книга и ее лист 1.
Активируем его...
Wokbooks(1).Sheets(1).Activate (хех.. если она мне нужна более 1-2 раз. я ее тоже засовываю в переменную)
далее
Ws.Cells(1,1).value="Новое значение в этой ячейке"

после этой команды...Wokbooks(1).Sheets(1) так и остался активным. а у WS новое значение. :-)
единственно... при завершении процедуры лучше отчистить переменную
Set WS = Nothing

Но все это имеет значение.. если книга открыта... :-)))
Если закрыта. вообще... то нужно получать данные через поставщика данных(хотя может есть и другие варианты).

В таких случаях я использую ADO и подключаюсь через конект к книге. Использую лист как таблицу, или Range по адресу, или Именнованный диапозон.
Сообщ. #875689
15.07.2005 17:35


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.01.2007 17:15
Сообщ.: 1 089, Visits: 11 975
Это ключевые моменты подключения к закрытой книге :-)

Dim adoCn
Set adoCn = CreateObject("ADODB.Connection")
With adoCn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = _
"Data Source=d:\MySpreadsheet.xls;" & _
"Extended Properties=Excel 8.0;"
.Open
End With
**************
Dim adoRs
Set adoRs = CreateObject("ADODB.Recordset")
strQuery = "SELECT * FROM Authors"
With adoRs
Set .ActiveConnection = adoCn
.Open strQuery
End With
*************
SELECT * FROM [Sheet1$]
SELECT * FROM Range1
SELECT * FROM [Sheet1$E11:F23]
Сообщ. #875691
16.07.2005 9:26
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 29.03.2006 9:17
Сообщ.: 22, Visits: 243
большое спасибо!
сейчас попробую!

Иван.
Сообщ. #875746
16.07.2005 9:32
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 29.03.2006 9:17
Сообщ.: 22, Visits: 243
Сумрак плиз стукнись в аську 692428

Иван.
Сообщ. #875747
16.07.2005 10:52


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.01.2007 17:15
Сообщ.: 1 089, Visits: 11 975
не.... аська не пойдет..я ее органически не приемлю.... изини.. есть мыло... мыль:-)
Сообщ. #875749
16.07.2005 13:19