![]() |
#2 |
Участник
|
У меня тоже недавно стал похожий вопрос о загрузке БИК с сайта, наверно есть куча компонент кроме Microsoft Internet Transfer Control 6.0. Но обойтись можно стандартной wininet.dll и VBA из этой библиотеки вызываются две функции: InternetOpen и InternetOpenUrl. Привожу свой рабочий код который записан макросом в книге екселя. Этот макрос запускается из нава и все работает на 100%, кстате на самом листе екселя оч удобно хранить настройки (прокси, URL, путь для сохранения).
hInternetSession=InternetOpen("DownloadApp", INTERNET_OPEN_TYPE_PROXY, Range("B3"),vbNullString,0) hURLFile = InternetOpenUrl(hInternetSession, Range("B1"), vbNullString, 0, INTERNET_FLAG_EXISITING_CONNECT, 0) Open Range("B2") For Binary As #1 bDoLoop = True While bDoLoop bDoLoop = InternetReadFile(hURLFile, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead) lTotalBytesRead = lTotalBytesRead + lNumberOfBytesRead If CBool(lNumberOfBytesRead) Then Put #1, , sReadBuffer Else bDoLoop = False End If Wend Close #1 InternetCloseHandle (hURLFile) InternetCloseHandle (hInternetSession) sReadBuffer объявлен так Dim sReadBuffer As String * 2048 Private Const INTERNET_OPEN_TYPE_PROXY = 3 ' Указывает что соединение через прокси Private Const INTERNET_FLAG_EXISITING_CONNECT = &H20000000 Private Const INTERNET_FLAG_RELOAD = &H80000000 ' Обновляет данные если они есть в кэше |
|