Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何从Excel vba代码写入控制台?_Vb.net_Debugging_Excel_Console_Vba - Fatal编程技术网

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

Vb.net 如何从Excel vba代码写入控制台?,vb.net,debugging,excel,console,vba,Vb.net,Debugging,Excel,Console,Vba,有没有办法从Excel vba宏将消息打印到控制台?我有一个调用excel宏的小型VB.NET控制台应用程序,我希望将宏代码中的错误消息打印到控制台。Debug.print没有帮助,因为它只打印到即时窗口。有什么想法吗?给它一个文件路径并将所有错误写入文件。您可以尝试使用Debug.WriteLine()将调试信息输出到Visual Studio输出窗口,但我有一种烦人的感觉,除非您正在编写控制台应用程序,否则您无法这样做 如果确实不起作用,请尝试使用Console.SetOut()方法将Con

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

给它一个文件路径并将所有错误写入文件。

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


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

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

为什么不将包含宏错误消息的字符串返回到.NET代码,然后让.NET代码将其写入控制台


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

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

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

值得吗?我不这么认为,这要看情况而定。我们有一个.net应用程序,它执行一些操作,然后启动excel报表。报告的数据通过COM接口从excel中的VBA中获取,以便用户自定义报告。我们目前没有,但我可以看到我们可能需要在启动报告的主应用程序中显示报告状态更新的时间。这主要是因为即时窗口实际上是VBA应用程序的“控制台”。