[Help] VBA Code dowload File .zip từ FTP xuống máy tính (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

robinhsoon

Thành viên hoạt động
Tham gia
19/1/16
Bài viết
153
Được thích
11
Xin chào cả nhà GPE!
Mong cả nhà giúp em một việc ạ..
Hiện tại em muốn dùng VBA để dowload 1 File .zip từ FTP xuống máy tính.. em đã có:
Hotting: 192.1.xxx.xxxx
User: xxx
Pass worrd: xxxxx
Port: xx
Em có nguyên cứu trên mạng một số code, nhưng khi chạy thì lại không hoạt động được ạ... (Em có đính kèm File)
VBA có thể dùng để dowload File từ FTB được không ạ...
Mong cả nhà giúp đỡ....Em chân Thành cảm ơn ạ...
 

File đính kèm

Xin chào cả nhà GPE!
Mong cả nhà giúp em một việc ạ..
Hiện tại em muốn dùng VBA để dowload 1 File .zip từ FTP xuống máy tính.. em đã có:
Hotting: 192.1.xxx.xxxx
User: xxx
Pass worrd: xxxxx
Port: xx
Em có nguyên cứu trên mạng một số code, nhưng khi chạy thì lại không hoạt động được ạ... (Em có đính kèm File)
VBA có thể dùng để dowload File từ FTB được không ạ...
Mong cả nhà giúp đỡ....Em chân Thành cảm ơn ạ...

Hình như chỗ này cũng có code tải file từ FTP server nè bạn

http://www.giaiphapexcel.com/dienda...e-và-đổi-tên-mong-giúp-đỡ.125387/#post-786620
 
Upvote 0
Em cảm ơn Anh đã giúp đỡ ạ..

Em có test lại theo code anh hướng dẫn ở bài trên nhưng nó lại báo lỗi ở req.send
Anh giúp em xem File em đang bị lỗi gì nhé..

Sub hello()
Dim myURL As String, oStream As Object, bytes() As Byte, req As Object
myURL = "ftp://138.108.141.12/12345.txt"
Set req = CreateObject("MSXML2.XMLHTTP")
req.Open "ftp://138.108.141.12/", myURL, False, "xxxxx", "xxxxx"
req.send
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
bytes = req.responseBody
oStream.Write bytes
oStream.SaveToFile "C:\Users\nguy6001\Downloads\" & Mid(myURL, InStrRev(myURL, "/") + 1), 2
oStream.Close
End Sub

Em cảm ơn ạ..!
 

File đính kèm

Upvote 0
Em cảm ơn Anh đã giúp đỡ ạ..

Em có test lại theo code anh hướng dẫn ở bài trên nhưng nó lại báo lỗi ở req.send
Anh giúp em xem File em đang bị lỗi gì nhé..

Sub hello()
Dim myURL As String, oStream As Object, bytes() As Byte, req As Object
myURL = "ftp://138.108.141.12/12345.txt"
Set req = CreateObject("MSXML2.XMLHTTP")
req.Open "ftp://138.108.141.12/", myURL, False, "xxxxx", "xxxxx"
req.send
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
bytes = req.responseBody
oStream.Write bytes
oStream.SaveToFile "C:\Users\nguy6001\Downloads\" & Mid(myURL, InStrRev(myURL, "/") + 1), 2
oStream.Close
End Sub

Em cảm ơn ạ..!

Bạn xem lại dòng req.Open trong đường dẫn bài #2 nêu với code của bạn có gì khác nhau. Từ đó tìm hướng sửa nhé.
 
Upvote 0
Khai báo cho ông system biết đây là loại hình gì. Chữ đó phải để y nguyên vậy.
Xin lỗi vì đã làm phiền anh, nhưng em sửa như bài ở đường dẫn #2.. vẫn báo lỗi như vậy ạ :(

Sub hello()
Dim myURL As String, oStream As Object, bytes() As Byte, req As Object
myURL = "ftp://138.108.141.12/12345.txt"
Set req = CreateObject("MSXML2.XMLHTTP")
req.Open "FTPGET", myURL, False, "XXXX", "XXXX"
req.send
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
bytes = req.responseBody
oStream.Write bytes
oStream.SaveToFile "C:\Users\nguy6001\Downloads\" & Mid(myURL, InStrRev(myURL, "/") + 1), 2
oStream.Close
End Sub
 
Upvote 0
Xin lỗi vì đã làm phiền anh, nhưng em sửa như bài ở đường dẫn #2.. vẫn báo lỗi như vậy ạ :(

Sub hello()
Dim myURL As String, oStream As Object, bytes() As Byte, req As Object
myURL = "ftp://138.108.141.12/12345.txt"
Set req = CreateObject("MSXML2.XMLHTTP")
req.Open "FTPGET", myURL, False, "XXXX", "XXXX"
req.send
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
bytes = req.responseBody
oStream.Write bytes
oStream.SaveToFile "C:\Users\nguy6001\Downloads\" & Mid(myURL, InStrRev(myURL, "/") + 1), 2
oStream.Close
End Sub

từ đầu tới cuối bạn báo lỗi mà không có hình chụp sao ai biết lỗi gì ?
1 file trên FTP muốn tải được thì phải truy cập được bằng đường dẫn:
Mã:
ftp://username:password@138.108.141.12/12345.txt
Bạn dán đường dẫn đó vào trình duyệt xem truy cập được không ?
 
Upvote 0
Nếu Port không phải số 21 thì phải thêm Port sau IP nữa

Mã:
ftp://username:password@138.108.141.12:portnumber/12345.txt

Và đường dẫn trên VBA

Mã:
ftp://138.108.141.12:portnumber/12345.txt
 
Upvote 0
Nếu Port không phải số 21 thì phải thêm Port sau IP nữa

Mã:
ftp://username:password@138.108.141.12:portnumber/12345.txt

Và đường dẫn trên VBA

Mã:
ftp://138.108.141.12:portnumber/12345.txt
Port của em là Port 21 ạ... Chương trình duyệt vẫn hoạt động ạ
Em gửi Anh hình ảnh và File anh xem giúp em nhé
 
Upvote 0
Port của em là Port 21 ạ... Chương trình duyệt vẫn hoạt động ạ
Em gửi Anh hình ảnh và File anh xem giúp em nhé

Code đứng tại dòng .Send có nghĩa là Login thất bại hoặc không tồn tại file.
Vậy thì vấn đề không còn nằm ở code nữa (code trên đã kiểm nghiệm trên window 10 và window server), mà nằm ở server của bạn. Cái này tôi không giúp được bạn nhé.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom