如何从Excel vba代码写入控制台?

时间:2010-01-26 20:14:02

标签: vb.net debugging excel-vba console vba

有没有办法从Excel vba宏向控制台打印消息?我有一个小的VB .NET控制台应用程序调用excel宏,我想从宏代码的错误消息打印到控制台。 Debug.print没有帮助,因为它只打印到即时窗口。有什么想法吗?

6 个答案:

答案 0 :(得分:13)

我不得不使用Debug.Print()作为Debug.Write()和Console.WriteLine()不起作用

答案 1 :(得分:9)

我发现VB .NET项目与它调用的宏之间没有通信 - 宏无法访问VB的控制台,也无法抛出异常。如果宏中发生错误,则VB .NET代码不会检测到它。 VB项目只调用宏,执行,然后项目继续运行,不知道宏中发生了什么。我解决这个问题的方法是我让宏将错误写入Excel电子表格中的特定指定单元格,然后VB项目读取并使用它来确定是否存在错误,然后将其写入控制台,如果有的话。一个作弊修复,但它的工作。感谢您的所有建议!

答案 2 :(得分:5)

您可以尝试使用Debug.WriteLine()将调试信息输出到Visual Studio Output窗口,但我有一种唠叨的感觉,除非您正在编写控制台应用程序,否则不能这样做。

如果确实不起作用,请尝试使用Console.SetOut()方法将Console.WriteLine()字符串重定向到StreamWriter,它可能是您计算机上的文件。不是理想的,但可能是一个可行的解决方案?

答案 3 :(得分:1)

传递文件路径并将所有错误写入文件。

答案 4 :(得分:0)

您可以在VB.NET应用程序中创建一个COM组件,您可以从VBA调用该组件并写入应用程序的控制台。

答案 5 :(得分:0)

为什么不将包含宏的错误消息的字符串返回到.Net代码,并将.Net代码写入控制台?

或者,如果这些确实是错误,请使用Err.Raise从宏引发错误,并使用Try Catch块在.Net代码中处理它们,该块将详细信息写入控制台。