Ho già provato con diverse tecniche con questo ... Uno che funziona abbastanza bene, ma ancora lega Codice durante l'esecuzione sta utilizzando la chiamata API:asincroni del download di file da Entro VBA (Excel)
Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
e
IF URLDownloadToFile(0, "URL", "FilePath", 0, 0) Then
End If
ho usato anche il codice (con successo) di scrivere VBScript da Excel e quindi eseguire con esso WScript e di attesa per la richiamata. Ma ancora una volta questo non è totalmente asincrono e continua a legare parte del codice.
Mi piacerebbe avere il download dei file in una classe guidata da eventi e il codice VBA può fare altre cose in un grande ciclo con "DoEvents". Al termine di un file, può attivare un flag e il codice può elaborare quel file mentre attende l'altro.
Questo sta estraendo i file excel da un sito Intranet. Se ciò aiuta.
Dato che sono sicuro che qualcuno chiederà, non posso usare altro che VBA. Questo verrà utilizzato sul posto di lavoro e il 90% dei computer è condiviso. Dubito fortemente che salteranno le spese aziendali per farmi avere anche Visual Studio. Quindi devo lavorare con quello che ho.
Qualsiasi aiuto sarebbe molto apprezzato.
Non funziona quando si scaricano i file di Excel. Ottieni un errore "Protocollo sconosciuto". Nell'esempio dei collegamenti avrebbe dovuto usare FreeThreadedDomDocument poiché è abilitato per Asynch per impostazione predefinita. Lo stesso problema però, ottimo per il download di pagine Web ma non riesco a farlo funzionare per i file. – TheFuzzyGiggler
Si sta scaricando tramite http, giusto? –
Appena testato il mio codice esistente - funziona per me (supponendo HTTP) –