我正在尝试运行放置在特定路径的批处理文件。该文件需要用户输入,我希望从Excel单元格传递参数。在Excel中执行批处理文件应该通过使用单击命令按钮来实现。
我是VBA的新手。我尝试了下面的代码,但点击按钮没有发生任何事情。
Private Sub CommandButton2_Click()
sid = Excel.Worksheets("Sheet1").Range("I8").Value
user = Excel.Worksheets("Sheet1").Range("I9").Value
Password = Excel.Worksheets("Sheet1").Range("I10").Value
msg = "hi"
Shell ("CMD.EXE /c C:\Users\shashank.b03\Desktop\test_CMD.bat" & sid &" "& user &" "& password &" ")
End Sub
答案 0 :(得分:1)
这是我测试过的一个例子,应该可以正常使用。它只调用shell命令并传递一个命令字符串。
您可以更改批处理文件在字符串中的路径&如果您不想在运行此窗口时显示shell窗口,请使用vbHide而不是vbNormalFocus。
您只需稍微更改一下即可将单元格值放入sid,user和password变量中。
希望这有帮助。
Dim sid As String
Dim user As String
Dim password As String
CommandString = "c:\test.bat" + " " + sid + " " + user + " " + password
Call Shell("cmd.exe /c" & CommandString, vbNormalFocus)
以下是使用shell中的参数和批处理文件的更基本示例。
将以下内容另存为test.bat
set arg1=%1
echo HELLO %1!
pause
将此代码放在excel中的按钮或其他组件中;
Private Sub CommandButton1_Click()
Dim sid As String
sid = "Shashank"
CommandString = "c:\test.bat" + " " + sid
Call Shell("cmd.exe /c" & CommandString, vbNormalFocus)
End Sub
确保保存批处理文件的路径与命令字符串中的路径相同。
运行此命令时,您将看到变量sid中保存的字符串被传递给批处理文件并被使用。你应该可以从这里开始工作。
希望这有帮助