所以我有一个启用宏的 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”放入 My文档文件夹。
从 Excel/VBA 调用时,如何使该文件重新出现在原始目录中?以及如何确保它实际上会像在外部 excel 中调用时那样用信息填充文件?