我的宏中有以下代码行:
Shell("importFile.bat"), vbHide
这是我在importFile.bat中的内容:
ftp -n -i -g -s:import.ftp > C:\log.txt
出于某种原因,每当我运行宏时,都会生成log.txt文件,但该文件为空。但是当我手动尝试运行批处理文件时,我会看到FTP命令的输出。
我做错了吗?
答案 0 :(得分:0)
尝试如下..我能够看到带有ftp数据的out.txt,我认为ftp命令无法在excel宏中获取import.ftp文件路径。尝试给出完整路径。您可以尝试下面的代码。
Sub ftp_button()
batfile = FreeFile
ftpbat = ThisWorkbook.Path & "\test.bat"
ftpout = ThisWorkbook.Path & "\out.txt"
ftpcmd = ThisWorkbook.Path & "\import.ftp" 'Existing ftp file - file contains one stmt "open 127.0.0.1"
If Dir(ftpbat) <> "" Then Kill (ftpbat)
If Dir(ftpout) <> "" Then Kill (ftpout)
Open ftpbat For Output As #batfile
Print #batfile, "ftp -n -i -s:" & ftpcmd; " > " & ftpout
Close #batfile
Shell (ftpbat), vbHide
End Sub