Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 Список листов книги с помощью sql -запроса  [new]
Bobgos
Member

Откуда:
Сообщений: 216
Добрый день.
Нужно с помощью sql или другим способом, не открывая книги получить в vba список листов.
Нашел только инфо по ссылку
[url=]http://www.sql.ru/forum/235083/spisok-vseh-listov-excel[/url]

Подскажите как с помощью vba в Excel получить список листов из закрытой книги?
Пример кода vba поможет куда лучше )
27 сен 17, 15:26    [20826992]     Ответить | Цитировать Сообщить модератору
 Re: Список листов книги с помощью sql -запроса  [new]
iMrTidy
Member

Откуда:
Сообщений: 552
Bobgos,

В общем, готовое решение.
27 сен 17, 15:37    [20827035]     Ответить | Цитировать Сообщить модератору
 Re: Список листов книги с помощью sql -запроса  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 15935
Это невозможно. Ты сможешь посмотреть оглавление бумажной книги, не открывая её? вот и тут та же история.

Другой вопрос, что это можно сделать, не открывая книгу на экране. Скажем, через Excel.Application.
27 сен 17, 15:37    [20827036]     Ответить | Цитировать Сообщить модератору
 Re: Список листов книги с помощью sql -запроса  [new]
Bobgos
Member

Откуда:
Сообщений: 216
iMrTidy
Bobgos,
В общем, готовое решение.

Akina
Это невозможно. Ты сможешь посмотреть оглавление бумажной книги, не открывая её? вот и тут та же история.
Другой вопрос, что это можно сделать, не открывая книгу на экране. Скажем, через Excel.Application.


Спасибо. Именно то что искал. Для вывода в массив доработал чутка.
+
Public Function fncSQLImport_ReadTableList(sFN As String, Optional bDelSym As Boolean) As Variant
Dim cN As ADODB.Connection, sConn As String
Dim objCat As ADOX.Catalog, tbl As ADOX.Table
Dim vT As Variant, iC As Integer
Dim sSheet As String
''''''''''''''''
Set cN = New ADODB.Connection
sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & VBA.Chr(34) & sFN & VBA.Chr(34) & ";" & "Extended Properties='Excel 12.0;HDR=YES;IMEX=1';"
cN.Open sConn
Set objCat = New ADOX.Catalog
Set objCat.ActiveConnection = cN

ReDim vT(objCat.Tables.Count - 1): iC = 0
For Each tbl In objCat.Tables
    vT(iC) = IIf(bDelSym, Left(Application.Substitute(tbl.Name, "'", ""), InStr(1, tbl.Name, "$", 1) - 1), tbl.Name)
    iC = iC + 1
Next tbl
fncSQLImport_ReadTableList = vT
cN.Close
Set objCat = Nothing
Set cN = Nothing
End Function
27 сен 17, 17:43    [20827475]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить