我的代码如下:
ChDir (ActiveWorkbook.Path)
ShellString = "cmd.exe /k cpdf -split " + Chr(34) + ".\" + Replace(File, ".csv", ".pdf") + Chr(34) + " -o temp/x_%%%.pdf"
Shell ShellString, vbNormalFocus
当我运行代码时,它什么都不做,因为它无法找到cpdf.exe。
Cpdf.exe与我的Active Workbook存在于同一路径中。 ChDir命令没有做到这一点。
当我运行代码时,我得到了
' CPDF'不被认为是内部命令......
我离开了以下提示:
C:\用户\ ksmith \文件
这告诉我该命令试图从该文件夹运行,这就是它失败的原因。
如何在VBA中从Desired文件夹运行Shell? 有些人建议,ChDir似乎没有做到这一点......
答案 0 :(得分:0)
ChDir
命令仅更改"当前"指定驱动器上的目录,但不影响当前的哪个驱动器"当前"。
所以,如果
然后执行
ChDir ActiveWorkbook.Path
将改变"当前" " L"的目录开车到" L:\ Temp1 \ Temp2",但是"当前"驱动将继续是" C"和C驱动器"当前"目录将继续是" C:\ Users \ ksmith \ Documents"。
因此,您还需要更改"当前"驾驶。如果你有一个映射驱动器(即它不能使用UNC指定的驱动器),你可以使用:
ChDrive ActiveWorkbook.Path
ChDir ActiveWorkbook.Path