Tôi đã cố gắng sử dụng nhiều kỹ thuật khác nhau với điều này ... Một rằng hoạt động khá độc đáo nhưng vẫn gắn lên mã khi chạy được bằng cách sử dụng cuộc gọi api:tải tập tin đồng bộ từ bên trong 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
và
IF URLDownloadToFile(0, "URL", "FilePath", 0, 0) Then
End If
tôi cũng đã sử dụng (thành công) mã để viết VBScript từ bên trong Excel và sau đó chạy với nó wScript và chờ đợi gọi lại. Nhưng một lần nữa điều này không hoàn toàn không đồng bộ và vẫn liên kết một số mã.
Tôi muốn tải xuống tệp trong lớp điều khiển sự kiện và mã VBA có thể thực hiện những việc khác trong vòng lặp lớn với "DoEvents". Khi một tệp được thực hiện, nó có thể kích hoạt cờ và mã có thể xử lý tệp đó trong khi chờ tệp khác.
Thao tác này sẽ kéo các tệp excel ra khỏi trang web Intranet. Nếu điều đó có ích.
Vì tôi chắc chắn ai đó sẽ hỏi, tôi không thể sử dụng bất cứ thứ gì ngoài VBA. Điều này sẽ được sử dụng tại nơi làm việc và 90% các máy tính được chia sẻ. Tôi rất nghi ngờ họ sẽ mùa xuân cho các chi phí kinh doanh của việc tôi Visual Studio hoặc. Vì vậy, tôi phải làm việc với những gì tôi có.
Mọi trợ giúp sẽ được đánh giá cao.
Sẽ không hoạt động khi tải xuống tệp Excel. Nhận lỗi "Giao thức không xác định". Trong ví dụ liên kết, anh ta nên sử dụng một FreeThreadedDomDocument vì nó được kích hoạt cho Asynch theo mặc định. Tuy nhiên, vấn đề tương tự, tuyệt vời khi tải xuống các trang web nhưng tôi không thể làm cho nó hoạt động đối với các tệp. – TheFuzzyGiggler
Bạn đang tải xuống qua http, phải không? –
Chỉ cần kiểm tra mã hiện có của tôi - hoạt động đối với tôi (giả sử HTTP) –