gpt4 book ai didi

vba - 从命令行使用路径名作为参数时出现 Excel 错误

转载 作者:行者123 更新时间:2023-12-04 20:43:46 24 4
gpt4 key购买 nike

我正在尝试从命令行启动特定的 Excel 文档并以文件路径的形式传入一个变量。在启动 Excel 工作表时运行一个宏。此文件路径可能包含空格,但是当 Excel 对其进行解释时,我相信它会尝试在空格之后打开每个部分作为新工作簿。这会导致程序运行后出现许多错误警告,因为它显然无法从子字符串创建文件。

批处理文件看起来像这样

echo %~1
start excel.exe %USERPROFILE%\Desktop\Compare.xlsm /e/%1%
pause

编辑:澄清。将文件拖放到批处理文件上时,批处理文件将被激活。删除的文件的路径然后存储在 %1 变量中。如果此文件路径有空格,则在每个空格之后 Excel 假定这是一个新工作表并尝试打开它。对包含将使用拖动文件路径的宏的 Compare.xlsm 的调用正常工作,因为它始终位于桌面上。因此,我的问题是如何让 Excel 获取存储在 %1 中的整个路径名并将其用作一个命令行参数,而不是多次调用来打开新工作簿。

如果批处理文件上使用的文件不包含任何空格,则不会发生错误。使用可能有空格的文件路径时,有什么方法可以消除错误,例如C:\用户\我的文档\foobar.txt

最佳答案

试试这个( 尝试和测试 )

echo %~1
start "excel.exe" "%USERPROFILE%\Desktop\Compare.xlsm" /e/%1%
pause

注意“Excel.Exe”周围的引号和文件路径?

另一个例子
echo %~1
start "excel.exe" "%USERPROFILE%\Desktop\Blah Blah.xlsm" /e/%1%
pause

我假设您正在运行来自 .Bat 的代码文件

关于vba - 从命令行使用路径名作为参数时出现 Excel 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25182998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com