Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Решить проблему с именем листа


Автор: stasms 11.9.2006, 12:49
добрый день. 
Вот часть кода... и это работает.

wi = "105.xls" 'имя файла
lk = "___" 'имя листа
dt = "Курс"
   
    '  получаю данные
    Set cnn = New ADODB.Connection
    Set rst = New ADODB.Recordset
        
     cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source= d:\works\" & wi & ";" & _
      "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        rst.Open "SELECT * FROM [" & lk & "$b1:e4]", cnn
        Range("h3").CopyFromRecordset rst
    
    rst.Close
    cnn.Close

Но как только появляется лист в поле имени которого знаки  !!!, отладчик ругается на 
rst.Open "SELECT * FROM [" & lk & "$b1:e4]", cnn

Можно ли выкрутиться в данном случае или как переименовать лист.
Прошу не пинать сильно, я не программист. smile  

Автор: Akina 11.9.2006, 13:47
Обращайся к листу не по имени, а по номеру - и все дела...

Автор: stasms 11.9.2006, 14:58
Спасибо.
Извини, не сообщил что в разных файлах которые приходится обрабатывать, эти  листы имеют различные номера.  
P.S. Так получаю файлы от клиентов и как ни боролся с ними менять они ничего не хотят. Вот  и мучаюсь.

Автор: Akina 11.9.2006, 18:20
Цитата(stasms @  11.9.2006,  15:58 Найти цитируемый пост)
в разных файлах которые приходится обрабатывать, эти  листы имеют различные номера

Ты имя листа знаешь? так сперва пробегись по ВСЕМ листам, найди тот у которого нужное имя и ЗАПОМНИ В ПЕРЕМЕННУЮ ЕГО НОМЕР. А потом используй его вместо имени...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)