【发布时间】:2013-01-28 07:26:24
【问题描述】:
所以我有一个启用宏的 Excel/VBA 工作簿,其中有一个按钮,它写入一个 .txt 文件,然后在同一目录中调用一个 .exe。 .exe 是用 C++ 编写的,应该输出另一个文件。
我遇到的问题是,由于某种原因,当 Excel 工作簿调用 C++ .exe 时,可执行文件可以很好地处理 .txt 中的信息,但输出文件从未出现过。但是,如果我有工作簿,只需制作 .txt 文件,然后我自己执行 C++ 程序,那么程序就会正确输出文件。
似乎从 Excel/VBA 工作簿调用 .exe 导致 .exe 不输出文件。
这是 Excel/VBA 代码
Open (ActiveWorkbook.Path & "\excel.txt") For Output As #1
Print #1, MyString
Close #1
ActiveWorkbook.FollowHyperlink (ActiveWorkbook.Path & "\MyProgram.exe"),
NewWindow:=True
C++ 被拆分为多个文件,但可能导致问题的关键部分如下
ofstream OutputFile;
int Sequence[12];
...
...
OutputFile.open("Output.solution");
for (int i=1;i<12;i++)
OutputFile << Int_to_String(Sequence[i]) << " ";
OutputFile.close();
那么,当从 Excel VBA 调用时,如何让 C++ 可执行文件输出“Output.solution”文件?需要明确一点 - 如果我单独运行 C++ 程序,它确实会输出文件。
编辑:单独执行.exe时,将正确的信息放入同一目录下的“Output.solution”文件中,但从Excel/VBA调用时,.exe改为放置一个空“Output.solution”进入我的文档文件夹。
从 Excel/VBA 调用时,如何使该文件重新出现在原始目录中?以及如何确保它会像在 excel 外部调用时那样实际填充文件?
【问题讨论】: