【发布时间】:2019-04-29 03:57:57
【问题描述】:
我正在尝试自动化以下过程:
- 将数据从数据库导入 Microsoft Excel (
myfile.xls) 并进行格式化。 - 文件另存为
myfile.txt。 - 通过
FTP上传到服务器。
我已经上传了FTP,但我遇到了在VBA 脚本中创建的批处理文件的问题。
我目前的脚本如下:
Dim MY_FILENAME As String
MY_FILENAME = "C:\user\sam\test" & "filename" & Format(CStr(Now), "yyyy_mm_dd_hh_mm") & ".BAT"
Dim FileNumber As Integer
Dim retVal As Variant
FileNumber = FreeFile
'create batch file
Open MY_FILENAME For Output As #FileNumber
Print #FileNumber, "FTP 00.0.000.000"
Print #FileNumber, "username"
Print #FileNumber, "password"
Print #FileNumber, "ascii crlf"
Print #FileNumber, "put " myfile.txt; " 'location'"
Print #FileNumber, "exit"
Close #FileNumber
'run batch file
retVal = Shell(MY_FILENAME, vbNormalFocus)
当我运行此脚本时,它会打开与服务器关联的 IP,但无法输入登录凭据。谁能告诉我哪里出错了?
【问题讨论】:
-
我在你的帖子中看不到任何Windows batch-file,所以我删除了相关标签;请在分配之前阅读标签信息...
-
嗨 aschipfl,上面的脚本创建了一个批处理文件,然后运行它。批处理文件内容为:FTP 00.0.000.000,用户名,密码,ascii crlf,put myfile.txt; '位置',退出
-
@aschipfl 很明显这篇文章是关于创建批处理文件的!!!
-
@samc 如果您将
MY_FILENAME的声明添加到上面的sn-p 中会有所帮助。 -
@PatrickHonorez,实际上不是,它是关于为
ftp.exe创建一个脚本,OP 错误地将其与 Windows batch-file 混合在一起,这无法正常工作; VBA 脚本应该直接运行ftp.exe并通过其-s选项将创建的脚本传递给它,而不是尝试调用运行ftp.exe的批处理文件;不过我重新添加了标签批处理文件并添加了ftp标签...
标签: excel vba batch-file ftp