通过手动单击,从VBA和Execute .bat文件执行.bat文件

时间:2014-01-21 23:42:02

标签: batch-file excel-vba vba excel

我是新手,希望我能正确地做到这一点。

我有一个bat文件,它将在hklm \ Apache Software Foundation \ Tomcat下搜索注册码。当我手动单击它时,Bat文件返回答案,但是当Shell使用Excel VBA调用时,它无法搜索该键。这是bat文件:

@echo off 
setlocal enableextensions enabledelayedexpansion
set xx=2
for /f "tokens=3 delims= " %%D in (
'reg query \\servername"\hklm\software\Apache Software Foundation\Tomcat" /s /v Version'
) do (
if !xx!==1 set "var3=%%D,"
set /a "xx = xx - 1"
)
if "%var3%"=="" (set "var3= ,")
echo %var3%
pause

以下是vba如何调用它:     调用Shell(“C:\ Users \ mynetworkID \ desktop \ c.bat”)

它正确运行bat文件,但无法搜索注册码。有什么想法吗?提前致谢

1 个答案:

答案 0 :(得分:0)

Shell()无法在未经许可的情况下绕过regsvr32.exe,可以使用ShellExecute API:

http://support.microsoft.com/kb/238245

希望我有代码,但现在项目不再在我手中了