【发布时间】:2014-03-19 06:50:11
【问题描述】:
我的批处理文件:
SET username=%1
SET password=%2
net use "\\gessel\toys\name" %password% /user:shops\%username%
ECHO.%ERRORLEVEL%
:copy
Xcopy "\\gessel\toys\name\babytoys" "%appdata%\shops" /S /E
ECHO.%ERRORLEVEL%
IF ERRORLEVEL 0 goto disconnect
goto end
:disconnect
net use "\\gessel\toys\name\babytoys" /delete
goto end
:end
EXIT /B %ERRORLEVEL%
我已经从VBA调用了上面的批处理文件,代码如下:
call Shell(Environ$("COMSPEC") & " /c " & path & username & password, vbHide)
上面的代码运行良好。但我需要验证文件是否在 VBA 中复制。假设客户输入了错误的用户名和密码,那么他将无法获得玩具信息。然后我必须显示一个消息框,显示消息为“输入信息错误”。所以为此我尝试了这样的代码:
sub submit_click
Dim as error as integer
error = Shell(Environ$("COMSPEC") & " /c " & path & username & password, vbHide)
if error <> 0
MsgBox "Provided info wrong", vbOKOnly, "Failure"
end if
end sub
但是上面的代码不起作用。即使用户名和密码正确,它也总是返回值。但是,如果我运行批处理文件,它会正确返回值,例如正确的详细信息为 0,错误的数据为 2 或 4。请任何人帮助我从批处理文件中捕获错误代码并将其传递给 VBA。
【问题讨论】:
标签: vba batch-file excel