忽略Excel中的命令行参数

时间:2017-02-23 00:29:18

标签: excel command-line command-line-arguments

有没有办法让Excel忽略某些命令行参数?我通过类似于:

的命令启动
Excel "C:\Temp\TestingCLAs.xlsx" /e service=http://localhost:61023/api/PortlandDev/2/ReportSource?Order='100146309'^&Line='0010'

服务字符串由Excel文件中的某个VBA读取,用于更新查询。但是,当我启动Excel时,命令行参数解释器会看到两件事:

  1. 打开" C:\ Temp \ TestingCLASs.xlsx"
  2. 开放服务= http:// ....
  3. 我希望解释器忽略第二个参数,但是在打开时出现以下错误:

      

    "抱歉,我们无法找到   服务= http://localhost:61023/api/PortlandDev/2/ReportSource?Order=' 100146309'&安培;行=' 0010' .XLSX。   它是否可能被移动,重命名或删除?

    我知道这不是由于excel文件中的VBA,因为即使使用空白excel文件进​​行测试也会发生这种情况。

    我找到了这篇参考文章:https://blogs.msdn.microsoft.com/twistylittlepassagesallalike/2011/04/23/everyone-quotes-command-line-arguments-the-wrong-way/并尝试使用' ^'来转义网址。但是,得到了相同的结果。

    同时查看上面的错误,如果在初始调用中没有指定.xlsx,则会将其添加到上面第二个URL的末尾。

    有没有办法让命令解释器不尝试执行URL?

    非常感谢任何想法。感谢

1 个答案:

答案 0 :(得分:0)

不确定为什么会有效但是传递了一个" / p" switch使得命令解释器不会尝试自动打开URL。例如,我的内部VBA可以使用以下内容,而命令解释器不会尝试从URL创建新工作簿。

Excel "C:\Temp\Template.xlsm" /e /p http://localhost:61023/api/PortlandDev/2/ReportSource?Order='100142574'&Line='0010'