我听说过你不能在 C# 中操作表,但可以通过 VBA。
有谁知道通过 VBA 可以完成哪些不能通过 C# PIA 完成的事情?
我在使用 Excel 插件时记得的一件事是,在工作表上添加的图片/形状的 OnAction 方法不会调用 C# 插件,这似乎是一个限制。您只能将 OnAction 设置为 VBA 宏。这可能与您关于 C# 和 VBA 差异的问题没有直接关系,但当我看到这些问题时,我突然想到了。
您无法调试使用 C# 的用户 PC 上发生的问题,因为您不会在那里安装 Visual Studio。使用 Excel VBA,您可以在运行代码的任何 PC 上进行调试。
编辑(回应匿名的评论)
据我了解,虽然您可以远程调试,但这是不一样的。它至少需要打开防火墙以允许调试流量(在大公司中可能需要一些主要的签核),并且您无法在发生时调试和修复正在进行的用户问题。显然,大多数编程环境都无法做到这一点,但这是 VBA 的优势之一——好吧,我想这取决于你的观点。
从根本上说,没有真正的区别。在这两种环境中,您几乎可以做任何事情,尤其是当您谈论 VB.net 和 C# 时——它们或多或少是针对相同库和平台的不同语法。
有一些语法差异,其中一种语言的某些功能在另一种语言中没有直接的等价物,但只要您有一些基本元素,您就可以编写代码以在两种语言中实现相同的目的。
在某些程序中,您可以将 VB 脚本(它是 VB 的一种变体)用于宏,在这些情况下,C# 不能用作直接替代品。但这是宿主程序的限制,而不是 VB/C# 本身的限制。
编辑: 您现在已经完全改变了问题,所以这个答案可能不再相关。
我认为从业务角度来看,最重要的区别在于,使用 C#,您不再有那么多“非程序员”的 lob 管理器等可以生成代码(宏)。这个过程本质上更加正式。
在语法方面有很多差异......但就使用对象模型的能力而言,这些差异都不是真正的问题。
有时您会发现 C# 需要更多的代码行,但在其他情况下则更少。此外,您会发现很多时候需要使用系统 API 调用现在是多余的。