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