
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.08.2010, 15:30
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
Уважаемые знатоки ! имя листа известно не открывая книгу EXCEL, как можно узнать - есть в ней этот лист ? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.08.2010, 15:38
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
MX-9, легко :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. адо ext 2.8 не забудьте подключить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.08.2010, 15:44
|
|||
|---|---|---|---|
|
|||
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
MX-9, Пишем в ячейку формулу, например, ='D:\Документы\[Книга1.xlsm]Лист8'!$A$1 Если есть Лист8, то будет значение, если нет - #ССЫЛКА! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.08.2010, 16:02
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
nilemMX-9, Пишем в ячейку формулу, например, ='D:\Документы\[Книга1.xlsm]Лист8'!$A$1 Если есть Лист8, то будет значение, если нет - #ССЫЛКА! проверять приходится c десяток книг - как лучше менять варианты формулы программно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.08.2010, 16:02
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
Shamanus, спасибо покрутим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 11:17
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
nilem, Ваш способ, но из VBA-программы через EVALUATE (....) не получается выдает "Error 23" лист есть в книге или нет - без разницы подстановка этой формулы в ячейку программным способом - тоже ноль эффекта работает только вручную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 11:30
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
MX-9, Моим способом должно все легко получится. Возвращаются все таблицы объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 11:36
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
Shamanus, Dim cn As New ADODB.Connection не проходит в моем EXCEL-2007 USER-DEFINED TYPE NOT DEFINED ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 11:41
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
MX-9, Так надо подключить библиотеки адо и активикс я же написал вот такие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 12:37
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
Shamanus, Спасибо ! SUPER ! ===================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 14:02
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
ShamanusMX-9, легко :) ... У меня к Вам пара вопросов, поясните плз: - В коллекции каталога таблицы получается каждый любой лист рабочей книги - это таблица? - Про св-во Коннекшнстринг при АДОДБ коннекте connectionstrings.com курить или что-то есть более развернутое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 14:18
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
кладовщик, не только рабочий лист, но кажется и именованные диапазоны Профессиональное программирование на VBA в Excel 2003 - там про ADO написано немножко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 14:31
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
кладовщик, про каталоги - то что все листы SYSTEM TABLE точно да, диапазоны Table также а про конекшнстринг я незнаю ресурсов с нормальным описанием. Опытным путем и гуглением приходится вычленять, то что мне нужно. Сам бы с удовольствием почитал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.08.2010, 15:04
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
Shamanus, Уточнение для EXCEL 2007 : cn.Open "DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};ReadOnly=True;DBQ=" & EXCEL2007_bookName & ";" ( см. http://www.mskbarticles.com/index.php?kb=949529 ) без этого работает через раз имена листов выдает в апострофах и прилепляет $ в конце в цикле выдает имена листов книги поочередно по алфавиту американскому, но цифровые имена - после буковенных ================= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.08.2010, 00:06
|
|||
|---|---|---|---|
|
|||
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
ShamanusMX-9, Так надо подключить библиотеки адо и активикс я же написал вот такие маленький вопросик вдогонку, а как программно определить подключены ли адо и активикс? ну и соответственно, подключить программно, если не подключены. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.08.2010, 08:33
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
Тёмa i ko, сам незнал, глубины иннета дали вот такой ответ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. в общем взято тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.09.2010, 00:18
|
|||
|---|---|---|---|
|
|||
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
Shamanus, огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.09.2010, 05:05
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
Мой вариант; немного доработанный. Кое-что взято здесь: http://www.sql.ru/forum/actualthread.aspx?tid=129458&hl=openschema Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2010, 15:01
|
|||
|---|---|---|---|
|
|||
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
на самом деле можно обойтись и без подключения в References доп.компонентах - по крайней мере с экселя97 есть объект QueryTable, который прожёвывает туже строку подключения вот кусок моих поделок (выборка таблицы-справочника из отдельного xls-файла): Dim qt As QueryTable Dim oe As ODBCError Dim spr As Range Dim conn As String, sq As String, fnam As String, pth As String, msg As String On Error GoTo NoSpr_ 'выборка данных через MS Query и ODBC-драйвер 'они должны быть установлены в составе MS Office или MDAC 2.8 conn = "ODBC;Driver={Microsoft Excel Driver (*.xls)};DBQ= <путь и имя файла> ;DefaultDir= <путь к файлу с \ на конце>;PageTimeout=10" sq = "SELECT `<имя листа>`.* FROM `<только имя файла без расширения xls>`.`<имя листа>$` `<ещё раз имя листа>$`" Set qt = .QueryTables.Add(conn, Activesheet.Range("A1"), sq) 'шапка грузится в 1ую строку листа qt.BackgroundQuery = False qt.EnableEditing = False 'не позволять редактировать свойства и структуру запроса qt.RefreshOnFileOpen = False 'не обновлять при открытии файла qt.FieldNames = True 'в шапку загружать имена полей qt.SaveData = False 'не сохранять данные qt.Refresh NoSpr_: 'расширенная обработка ошибок ODBC-подключения If Err.Number <> 0 Then MsgBox "ошибка ODBC '" & Err.Number & "," & Err.Description & "' при загрузке справочных данных" 'детализация ошибки For Each oe In Application.ODBCErrors msg = msg & oe.ErrorString & vbCrLf Next oe If Len(msg) > 0 Then MsgBox msg, vbInformation, "Расшифровка ошибок ODBC" End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2010, 17:51
|
|||
|---|---|---|---|
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
2Pavel Berezin А QueryTable - это что-то, что в MS Query входит или какая-то вещь сама в себе? Где про такое почитать можно? У меня проблемка - унаследовал систему формирования отчетности, где в Эксель все ч-з MS Query выгружается, а я до августа только и знал, что такой метод выгрузки в Эксель из внешних данных существует. Сейчас в своих книгах читаю - все очень коротенько про этот инструмент. ЗЫ У меня в текущих задачах есть сделать отчет, где нужно пользователю файл Экселя предоставить, чтобы по запросу из внешних данных - это БД в Акцесс - юзер мог выгружать данные в Эксель. Т.е. юзер в Экселе формирует строку СЕЛЕКТа и выгружает данные из Акцесса. Решил выгружать в Эксель данные ч-з ADO Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2010, 19:49
|
|||
|---|---|---|---|
|
|||
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
QueryTable это объект унаследованный от MS Query. В древних экселях 5.0 и 95 это была отдельная надстройка, начиная с 97 её встроили в стандартный эксель (работает и в последних версиях прекрасно). Если вручную через MS Query импортировать данные на лист из внешней БД, объект QueryTable будет представлять собой кусок листа (Range по сути), в который эти данные подтянулись (от шапки до последней строки данных). В панелях инструментов есть отдельная панель (помоему "Внешние данные"), какраз позволяющая управлять свойствами объекта QueryTable. Почитать можно в стандартной справке VBA к экселю 97. Но если интересует именно MS Query - помоему самое лучшее описание этой надстройки было в родной белой 700страничной книжке, которая шла в коробке с русским дистрибутивом древнего эксель 5.0 (вообще имхо, в справке к экселю 5.0 многие вещи были описаны лучше, чем в более поздних версиях). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2010, 19:54
|
|||
|---|---|---|---|
|
|||
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
в предыдущем примере строку Set qt = .QueryTables.Add(conn, Activesheet.Range("A1"), sq) 'шапка грузится в 1ую строку листа следует писать так (для импорта данных из БД на активный лист, начиная с ячейки A1) Set qt = Activesheet.QueryTables.Add(conn, Activesheet.Range("A1"), sq) 'шапка грузится в 1ую строку листа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2010, 20:02
|
|||
|---|---|---|---|
|
|||
определить наличие листа не открывая книгу EXCEL |
|||
|
#18+
кладовщикТ.е. юзер в Экселе формирует строку СЕЛЕКТа и выгружает данные из Акцесса. Решил выгружать в Эксель данные ч-з ADO Код: plaintext 1. 2. 3. Должно быть установлено и подключено через Tools\References библиотека MS ADODB,т.к. вы в своём коде явно указываете, какого типа объект хотите создать (= New ADODB.Connection). ставится она помоему тоже в дистрибутиве MDAC (MS data access components). Но в принципе, через QueryTable вы тотже самый запрос cможете сделать и без ADO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=61&mobile=1&tid=2177664]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 514ms |

| 0 / 0 |
