|
|
|
Junior Member
      
участник
Last Login: 29.03.2006 9:17
Сообщ.: 22,
Visits: 243
|
|
забыл как сделать чтобы в комбобоксе отображались данные из другой книги и чтобы при этом она не была открыта. я и макрос такой потерял :( а теперь вот не могу вспомнить. может кто подскажет?
Большое спасибо!!!
Иван.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.01.2007 17:15
Сообщ.: 1 089,
Visits: 11 975
|
|
Dim WS as Worksheet
Set WS = "Нужная книга"
CBO.clear
и т.д.
***
set WS = Nothing
|
|
|
|
|
Junior Member
      
участник
Last Login: 29.03.2006 9:17
Сообщ.: 22,
Visits: 243
|
|
а если не затруднит можно полный макрос?
я не так делал.
я делал workbook.activate и т.д.
Иван.
|
|
|
|
|
Supreme 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 по адресу, или Именнованный диапозон.
|
|
|
|
|
Supreme 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]
|
|
|
|
|
Junior Member
      
участник
Last Login: 29.03.2006 9:17
Сообщ.: 22,
Visits: 243
|
|
большое спасибо!
сейчас попробую!
Иван.
|
|
|
|
|
Junior Member
      
участник
Last Login: 29.03.2006 9:17
Сообщ.: 22,
Visits: 243
|
|
Сумрак плиз стукнись в аську 692428
Иван.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.01.2007 17:15
Сообщ.: 1 089,
Visits: 11 975
|
|
| не.... аська не пойдет..я ее органически не приемлю.... изини.. есть мыло... мыль:-)
|
|
|
|
| | |