2016-12-30 138 views
3

我想从Excel 2016启动虚拟机(Oracle VirtualBox)。我尝试使用此代码,但没有任何反应,甚至没有发生错误。从Excel启动虚拟机

Dim FileName As String 
FileName = "D:\Program Files\Oracle\VirtualBox\VirtualBox.exe"" --comment ""PANT"" --startvm ""2c2e4312-6d7d-4892-8a8f-1471a4d2c79d""" 
FileName = "cmd.exe /c " & FileName 
Debug.Print FileName`` 
'End 
Call Shell(FileName, vbNormalFocus) 

任何建议???由于

+0

尝试把领先的双引号在文件名的开始。 (在.exe之后你已经有一个了。)所以'FileName =“”“D:\ Program Files \ Oracle \ VirtualBox \ VirtualBox.exe”“--comment”“PANT”“--startvm”“2c2e4312 -6d7d-4892-8a8f-1471a4d2c79d“”“' – YowE3K

+0

谢谢!有用!我也删除了“cmd.exe/c”。 –

回答

1

你的线,说:

FileName = "D:\Program Files\Oracle\VirtualBox\VirtualBox.exe"" --comment ""PANT"" --startvm ""2c2e4312-6d7d-4892-8a8f-1471a4d2c79d""" 

是创建其中包含字符的字符串变量:

D:\Program Files\Oracle\VirtualBox\VirtualBox.exe" --comment "PANT" --startvm "2c2e4312-6d7d-4892-8a8f-1471a4d2c79d" 

您在这些字符的开始需要一个额外的双引号“附上“文件名,以便shell不会被”程序“和”文件“之间的空间所困惑。所以,你需要的字符串是:

"D:\Program Files\Oracle\VirtualBox\VirtualBox.exe" --comment "PANT" --startvm "2c2e4312-6d7d-4892-8a8f-1471a4d2c79d" 

,并创造条件,是需要的代码:

FileName = """D:\Program Files\Oracle\VirtualBox\VirtualBox.exe"" --comment ""PANT"" --startvm ""2c2e4312-6d7d-4892-8a8f-1471a4d2c79d"""