【问题标题】:VBA: Help running cmd line from excel vbaVBA:帮助从 excel vba 运行 cmd 行
【发布时间】:2021-09-26 23:06:56
【问题描述】:

我使用一个从 pdf 文件中提取数据的程序,您可以使用 cmd 行来控制该程序,我想将它与我的 excel 表集成,下面的代码在粘贴到 cmd 时可以正常工作,但是当我尝试从 VBA 无法正常工作。

这是我在网上找到的,非常感谢帮助。

sCommandToRun = "C:\Program Files (x86)\A-PDF Data Extractor\PDECMD.exe" -R"Accord new" -F"C:\Users\phill\Desktop\Test.pdf" -O" C:\Users\phill\Desktop\results.xlsx" -Txlsx -PA

调用 Shell("cmd.exe /S /C" & sCommandToRun, vbHide)

如果有办法等到 cmd 行完成后再执行另一行代码,也会有很大帮助。

谢谢

【问题讨论】:

  • 为什么需要cmd.exe 从 VBA 运行另一个可执行文件?

标签: excel vba shell cmd automation


【解决方案1】:

在带有空格的路径周围添加引号。

Option Explicit
Sub test()

    Dim sCommand As String
    sCommand = """C:\Program Files (x86)\A-PDF Data Extractor\PDECMD.exe""" & _
           " -R""Accord new""" & _
           " -F""C:\Users\phill\Desktop\Test.pdf""" & _
           " -O""C:\Users\phill\Desktop\results.xlsx"" -Txlsx -PA"    
    'Debug.Print sCommand
    Shell "cmd.exe /S /C " & sCommand, vbHide
    
End Sub

【讨论】:

  • 嗨 CDP1802 感谢您的帮助,当我检查调试打印时,代码行是正确的,当我将其粘贴到 cmd 时它可以工作,但是当我运行 vba 代码时它不工作
  • @phill 尝试不使用 /S
  • 我尝试不使用 /s 但似乎仍然相同,当我尝试运行代码“检测到恶意宏”时收到安全警告
  • 将 '"Shell "cmd.exe /C " & sCommand, vbHide" 更改为 "Shell sCommand, vbHide" 出于某种原因
【解决方案2】:

将 '"Shell "cmd.exe /C" & sCommand, vbHide" 更改为 "Shell sCommand, vbHide" 出于某种原因 - phill cook 刚刚编辑

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2022-11-14
    • 2016-09-11
    • 1970-01-01
    • 2023-03-13
    • 2021-02-05
    • 2020-03-06
    相关资源
    最近更新 更多