Excel vba - บันทึกเป็น pdf และ vba ftp อัปโหลด - การอัปโหลดดูตลก [ซ้ำกัน]

สวัสดี ฉันไม่สามารถเข้าใจเรื่องนี้ได้ ฉันมีรหัสใน vba ที่บันทึกแผ่นงานที่ใช้งานอยู่เป็น pdf ใช้งานได้ดี pdf ดูดี! จากนั้นโค้ดก็ดำเนินต่อไป และสร้างสคริปต์แล้วอัพโหลดไฟล์ pdf ไปยังเซิร์ฟเวอร์ การอัปโหลดยังใช้งานได้ แต่เมื่อฉันเปิดไฟล์บนเซิร์ฟเวอร์ ข้อความ 99% ก็ไม่อยู่ที่นั่น ฉันได้ลองอัปโหลดไฟล์ด้วยตนเองซึ่งสร้างขึ้นจากสคริปต์และใช้งานได้ แล้วเกิดอะไรขึ้น? สคริปต์ ftp จะลบข้อความ 99% ออกจาก pdf เมื่อทำการอัพโหลดได้อย่างไร ฉันได้พยายามที่จะไม่ใช้แผ่นงานที่ใช้งานอยู่และตั้งเวลาด้วยในกรณีที่ไฟล์ยังสร้างไม่เสร็จ แต่นั่นไม่ใช่ปัญหา รู้สึกเหมือนการอัปโหลดแปลงไฟล์ PDF สิ่งนี้จะเป็นจริงหรือไม่ หวังว่าคงมีคนตอบได้ดี

อัปเดต ! - รหัสใช้งานได้แล้ว

นี่คือรหัสที่ฉันใช้:

 '''create pdf File
ThisWorkbook.Sheets("Course_rates_print1").Select

 ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:="E:\Kunder-i-brug\PSC\office-software\rates-now.pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False




Application.Wait (Now + TimeValue("00:00:20"))

 ''''''''write script.dat and upload.dat file
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("E:\Kunder-i-brug\PSC\office-software\script.dat", True)
a.writeline "username" 
a.writeline "password"
a.writeline "Binary"
a.writeline "mput E:\Kunder-i-brug\PSC\office-software\rates-now.pdf" 'file to be uploaded
a.writeline "quit"
a.Close

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("E:\Kunder-i-brug\PSC\office-software\upload.bat", True)
a.writeline "ftp -i -s:E:\Kunder-i-brug\PSC\office-software\script.dat 
ftp.server" 'the ftp site
a.Close


dRetVal = Shell("E:\Kunder-i-brug\PSC\office-software\upload.bat", 0) 
'upload the file
 ''''''''''end upload.bat file

Application.ScreenUpdating = True

person Lasse Anker    schedule 13.04.2018    source แหล่งที่มา
comment
คุณกำลังดำเนินการถ่ายโอนแบบไบนารี่หรือไม่? nsftools.com/tips/MSFTP.htm#binary   -  person Tim Williams    schedule 14.04.2018
comment
คำถามที่ดี! รหัสที่คุณเห็นคือรหัสที่ฉันใช้ แต่ดูเหมือนคุณกำลังชี้นำฉันไปในทิศทางที่ถูกต้อง ฉันจะพยายามค้นหาว่านี่คือปัญหาหรือไม่ ฉันไม่ค่อยสนใจการใช้ .bat และ script หรือใช้ ftp กับ vba มากนัก ดังนั้นมันอาจเป็นได้ :)   -  person Lasse Anker    schedule 14.04.2018
comment
คุณคือดาว. ใช้งานได้แล้ว :) เพิ่มบรรทัด a.writeline "Binary" หลังรหัสผ่าน - คุณช่วยโพสต์ไว้เป็นคำตอบได้ไหม ฉันจะปิดเรื่องนี้ได้ :) และขอขอบคุณที่ช่วยทิม   -  person Lasse Anker    schedule 14.04.2018
comment
อย่างไรก็ตาม หากคุณใช้ส่วนขยาย .ftp บนสคริปต์ของคุณ คุณสามารถเรียกใช้ script.ftp และการเชื่อมโยงไฟล์มาตรฐานจะเรียกใช้ภายใต้ ftp.exe script.ftp   -  person    schedule 14.04.2018