我的代码如下:
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:\ Users \用户ksmith \文件
这告诉我该命令试图从该文件夹运行,这就是它失败的原因。
如何在VBA中从Desired文件夹运行Shell?有些人建议,ChDir似乎没有做到这一点。
ChDir
命令仅更改指定驱动器上的“当前”目录,但不会影响当前“当前”的驱动器。
因此,如果
然后执行
ChDir ActiveWorkbook.Path
将“L”驱动器的“当前”目录更改为“L:\ Temp1 \ Temp2”,但“当前”驱动器将继续为“C”,C驱动器的“当前”目录将继续为“ C:\ Users \用户ksmith \文件”。
因此,您还需要更改“当前”驱动器。如果您有一个映射驱动器(即它不能与UNC指定的驱动器一起使用),您可以使用以下方法执行此操作:
ChDrive ActiveWorkbook.Path
ChDir ActiveWorkbook.Path