【问题标题】:Executable not running correctly after being called from a VBA Excel Macro从 VBA Excel 宏调用后可执行文件未正确运行
【发布时间】:2016-07-03 19:13:38
【问题描述】:

我有一个可执行的“Operate.exe”,它从文本文件“Weightings.txt”中读取数据并对其执行一些操作。这在独立执行时运行良好。

我正在尝试使用 VBA 从 excel 中的按钮执行此操作。程序运行,但未打开/找到“weightings.txt”。

这是我在 VBA 中使用的代码:

Sub TextBox1_Click()
Shell ThisWorkbook.Path & "\Operate.exe", vbNormalFocus
End Sub

文件夹包含Operate.exe、Operate.pdb、Game.xlsm和Weightings.txt。

是否因为 exe 程序是从 VBA 运行而找不到 Weightings.txt?

【问题讨论】:

  • 从脚本运行程序时的当前工作目录可能与从控制台运行时不同。尝试打印当前工作目录进行检查。
  • 谢谢。这是有道理的。需要了解有关目录的更多信息

标签: excel vba macros exe


【解决方案1】:

将当前默认工作目录更改为 ThisWorkbook.Path。

Sub TextBox1_Click()
    Debug.Print CurDir
    ChDir ThisWorkbook.Path
    Debug.Print CurDir
    Shell ThisWorkbook.Path & "\Operate.exe", vbNormalFocus
End Sub

【讨论】:

  • 谢谢!完美运行。
猜你喜欢
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多