2009-08-02 62 views
3

我的背景:主要是C编程。我有一些(最近......最近2个月)获得了JAVA(新手)技能。我所有有限的经验都是基于为Linux开发的。新手:我应该学习C#,VB.Net或VBA/VB的Excel编程?

我想为工作目的做一些优秀的编程。我的主要兴趣是开始创建“仪表板”和excel表格中的图表/报表,因为我厌倦了手动更新多张表格。我很懒,所以我喜欢自动化,只要我可以:-)

这些“新”语言(对我来说)你会推荐学习哪一种?我也希望,如果/当我越来越熟悉Windows/MS Office环境时,我可以做更多“强大”的事情。

+0

非常感谢所有反馈家伙!我认为这个desicion制造商是Thorarin .... VBA可能不会这么长时间,如果它被替换为.net,那么也许C#就是要走的路,因为我可能能够在未来。 再次......感谢所有伟大的反馈,非常有用! – NomadAlien 2009-08-02 11:40:37

回答

6

我个人比较喜欢C#作为一种语言,但在发布版本中,VB.NET是用于Office interop的更好语言。虽然C#4改善了这种情况lot,但具有命名参数和可选参数,参数伪造和COM PIA链接。

如果你可以使用C#4,那可能对你来说是最好的选择 - 但是如果你被完全发布的版本困住了,你可能想用VB.NET代替。

+0

嗨,乔恩。不确定你的意思是“完全发布的版本”。我的要求是只为我自己使用,所以它不会通过公司或其他人得到支持。主要是为了刮我自己的痒。 – NomadAlien 2009-08-02 10:36:16

+0

我的意思是“不在测试版本中的版本”:)如果您很高兴使用Visual Studio 2010的beta 1(这有点慢但肯定可用),那么您可能需要直接访问C#。 – 2009-08-02 10:39:21

9

如果您的主要目标是优化您的Excel任务,那么VBA是需要学习的语言。

好处是,如果你有任何编程背景,学习曲线是非常简单的。

只要运行“录制宏”,执行任务,然后查看生成的代码。你有一个可以学习的实例。

+0

谢谢安德鲁。我的主要“担忧”是我立即着眼于创建结构/类来解决我的一些问题,然后将我带到vb.net和c#。我在VBA中有一本初学者书,但是除了使用数组之外,没有提到做这样的事情。这是否需要从诡计或? – NomadAlien 2009-08-02 10:34:06

0

微软计划在未来的某个时候摆脱VBA。例如,已经从Mac版的Office 2008中删除了支持。这种方式在Windows版本中呆了一段时间,但是没有重大的新开发将会完成。

看到你拥有C和Java知识,并且考虑到你刚从新开始,我肯定会使用.NET。这只是您的时间更好的投资。

像Jon Skeet说的那样,C#(4.0)可能是您最好的选择如果您不介意使用测试版软件。

1

由于您知道Java & C,所以C#应该是最容易学习的。如果这对你很重要,那么C#技能的工作量也会增加。

2

如果你想深入研究excel自动化,我会坚持使用VBA。如果你对扩展知识更感兴趣,我会选择一种.NET语言,可能是VB.NET。

C#似乎更有声望/受欢迎,但它也更接近你已经知道的东西。如果您使用VB学习.NET Framework,那么您的C/Java语法意味着您可以阅读C#。如果您改变了主意,它也可以更平滑地过渡到VBA。

1

所有给出的答案都是合理的,但我不确定它们是否现实。是的,微软一直想摆脱VBA一段时间,我相信他们非常希望Visual Studio Tools for Office能够起飞;是的,VB.NET和C#都支持所谓的类(使用面向对象的编程)比VBA好得多。尽管如此,世界使用VBA!特别是对于Excel解决方案,我想大约有99%的系统使用VBA。所以我个人会学习VBA,这得益于以下事实:

  1. 您可以记录宏以查看如何执行操作;和
  2. 它内置于Excel(无需购买或安装任何其他软件)。

我已经写了一个VBA tutorial online,我希望能帮到你,有很多示例代码和图表。让我知道你对它的看法,如果你应该使用它。

PS看起来我的建议有些偏见,但事实并非如此。我们通过VSTO,C#和VB.NET进行培训,并且我个人偏好的编程环境是Visual Studio(当我不得不现在恢复时,VBA让我非常生气)。然而,这是近20年的学习成果!对于一个新的程序员来说,VBA学习起来要简单得多。