Добрый вечер, всем... вопрос, в принципе, в названии темы. уточню: хотелось бы это сделать без образования промежуточного файла!!?? p.s. знаю только вариант любезно предоставленный EducatedFool на его сайте DownloadFile, после чего открываю книгу и беру нужный диапазон в массив... и убиваю файл... (файл с тем, что есть, прилагается - точку-останова на EndSub - и в окне Locals виден заполненный массив)... - всё как бы работает, но просто очень интересно, если нужен только массив из файла .xls (который находится в и'нет) - то МОЖНО ЛИ его как-то взять, не скачивая сам файл и КАК?? p.p.s сразу оговорюсь - это НЕ база данных - подключение и запрос не наладить, хотя было бы интересно... но, видно, не судьба на данном файле... (вот такой вопрос мучает не первую неделю - в сети ответа не нашла)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
В данном случае можно скачать без вспомогательного файла и без ADO прямо в память Excel для этого вместо: DownloadFile URL$, FileTxt$ достаточно записать: Workbooks.Open URL, ReadOnly:=True
ZVI написал: достаточно записать: Workbooks.Open URL, ReadOnly:=True
и то, что мне очень понравилось - IE тут вообще не при чём (как, в принципе, и в подходе Игоря) - не люблю способы обращения в и'нет, которые дёргают explorer так, что потом кнопка "сервис-повторное открытие последнего сеанса" не работает - всегда можно что-нибудь потерять - поэтому к IE стараюсь не прикасаться по кодам... а тут, похоже, вообще прямое обращение... всё открылось и всё взялось - без функции и без лишнего файла на компе! Спасибо большое - "строка№1" - всегда выглядит намного аккуратнее, чем целый модуль исписанный мной с таким же функционалом... Вот так выглядит код до End Sub:
Код
Workbooks.Open URL, ReadOnly:=True
Set wb = ActiveWorkbook
If wb Is Nothing Then Exit Sub
Set ra = wb.Worksheets(1).UsedRange
arr = ra.Value '!!! в окне Locals
wb.Close False
End Sub
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Sub bb()
Dim URL, arr
'ссылка на файл из соседней темы
URL = "http://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=136079&action=download"
arr = GetObject(URL, "excel.sheet").Worksheets(1).UsedRange.Value
End Sub
всегда знала, что можно выражаться более кратко, чем я - одна строка, способная заменить все мои мысли по коду сразу, всегда на вес золота... (даже не знала, как спросить)
p.s. честно говоря, хотела понять этот странный объект ADOStream - как это в Stream'e найти Position от LineSeparator, чтобы брать построчно, SkipLines иногда... чтобы понять много новых слов... как-то эксперименты на textStream проходят, а ADOStrem какой-то аморфный в моём понимании - слить с файла(LoadFromFile), залить в файл(SaveToFile), даже кодировку задать Charset - понятно, а что можно делать, "на лету" распознавая саму структуру информации, пока не нашла... НО предложенные варианты ещё короче, чем я подумала, - всем большое спасибо, а то рук на клавиатуре иногда не хватает... respect!
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)