0

所以我的问题有点主观,但我对使用 VBA 与 Microsoft Interop Excel 参考有点好奇。我在学习 VBA 之前先学习 VBA,然后我转向 .net 以设计更强大的表单。interop.excel 参考在格式化工作表方面如何工作?它与在功能上使用 VBA 基本相同吗?比如格式化,比如说,列宽和重新排列数据?同样,如果您知道 VBA(我知道)是设计一个运行电子表格中的宏的 .net 应用程序更好,还是开始重新学习如何在运行时在 vb.net 中执行它们?感谢您的建议。

4

1 回答 1

0

在 .net 中编写 Excel 格式化代码(意见)比驱动宏要好。首先,您不必在 Excel 中拥有宏,其次您有一个地方可以修改您的代码。如果您是 VBA 人员,您知道录制宏会使代码变得一团糟,然后您必须将其剥离干净。

我们在办公室使用 Interop 学到了一些东西。后期绑定比引用对象更安全,因为它可以支持不同的已安装版本的 office,只要您的代码中不包含任何受支持最少的 office 版本无法处理的功能。此外,始终完全限定您的对象。我的意思是使用

Dim XLApp as object = CreateObject("Excel.Application")
XLApp.Range("A1").font.bold=True
XLApp.Range("A1").font.size=12

不使用

Dim XLApp as object = CreateObject("Excel.Application")
With XLApp.Range("A1")
    .font.bold=True
    .font.size=12
End With

Office 互操作存在一个已知问题,即“with”子句可能会导致创建引用,无论您在完成后清理得多么好,即使在您的应用程序关闭后也可能会挂起。您可以通过创建来自己测试一个测试应用程序,修改工作表中的一些设置,保存并关闭。在写入的情况下,打开任务管理器,Excel仍在您的进程列表中。

希望这可以帮助

于 2012-11-13T19:44:23.563 回答