新手:我应该学习C#、VB.Net还是VBA/VB进行Excel编程?

3
我的背景: 主要是C语言编程。我最近(过去两个月)学习了一些JAVA(初学者)技能。我的有限经验都是基于Linux开发的。
我想为工作目的做一些Excel编程。我的主要兴趣是开始创建“仪表板”和图表/报告,因为我已经厌倦了手动更新许多工作表。我很懒,所以我喜欢在任何可以自动化的地方自动化 :-)
你会推荐我学习这些“新”的语言中的哪一种吗?我还希望如果/当我更熟悉Windows / MS Office环境时,我可以做更多“强大”的事情。

非常感谢大家的反馈!我认为决策者是Thorarin...VBA可能不会再存在太久了,如果它被.NET取代,那么也许C#是未来更好的选择,因为我可能能够做更多的事情。再次感谢所有的反馈,非常有用! - NomadAlien
6个回答

9
如果您的主要目标是优化Excel任务,则需要学习VBA语言。
好处是,如果您具有任何编程背景,学习曲线非常简单。
只需运行“记录宏”,执行任务,然后查看生成的代码。您拥有一个可供学习的工作示例。

谢谢安德鲁。我的主要“担忧”是我立即考虑创建结构/类来解决一些问题,这就让我想到了VB.NET和C#。我有一本VBA初学者书籍,但没有提及做任何类似的事情,除了使用数组。这需要我改变思维方式吗? - NomadAlien
@nomad.alien:我不这么认为。即使你从C的思维方式开始,你也可以完成你的工作。也许你的代码看起来有点滑稽,但这并不是感到羞耻的理由。 - Tadeusz A. Kadłubowski

5

我个人更喜欢使用C#语言,但就已发布版本而言,VB.NET是用于Office互操作的更好的语言。不过,C# 4通过命名参数和可选参数、ref参数伪造和COM PIA链接等方面得到了很大改进。

如果你可以使用C# 4,那可能是最好的选择 - 但如果你被完全发布的版本所限制,你可能会选择使用VB.NET。


嗨,Jon。不确定你所说的“完全发布版本”是什么意思。我的要求是仅供个人使用,因此这不是公司或任何其他人支持的东西。主要是为了解决自己的问题。 - NomadAlien
我的意思是“不是测试版的版本” :) 如果您愿意使用 Visual Studio 2010 的 beta 1 版本(速度有点慢,但肯定可用),那么您可能想直接使用 C#。 - Jon Skeet

2
如果你想直接进行excel自动化,我建议使用VBA。如果你更想扩展你的知识,我会选择其中一种.NET语言,可能是VB.NET。
C#似乎更有声望/流行,但它也更接近你已经了解的内容。如果你使用VB学习.NET框架,那么你就能够阅读C#以及你的C/java语法。这也会为切换到VBA提供更平滑的过渡,如果你改变主意的话。

1

所有给出的答案都是合理的,但我不确定它们是否现实。是的,微软一直想摆脱VBA,我相信他们非常希望Visual Studio Tools for Office能够起飞;而且,VB.NET和C#都比VBA更好地支持了使用面向对象编程的类。

然而...全世界都在使用VBA!特别是对于Excel解决方案,我猜大约99%的所有系统都使用VBA。所以我个人会学习VBA,因为:

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

我写了一个在线VBA教程,希望能帮助您,其中包含示例代码和图表。如果您使用它,请告诉我您的想法。

附言:我的建议可能看起来有些偏见,但实际上并不是。我们的培训课程涵盖了VSTO、C#和VB.NET,而我个人最喜欢的编程环境是Visual Studio(现在如果不得不回到VBA,我会疯掉)。然而,这是近20年学习的结果!对于新手程序员来说,学习VBA要简单得多。


1

既然你已经掌握了Java和C,学习C#应该是最容易的。如果这对你很重要,那么拥有C#技能也会带来更多的工作机会。


0

微软计划在未来的某个时候摆脱VBA。例如,支持已经从Office 2008的Mac版本中删除。它可能会在Windows版本中保留一段时间,但不会有任何重大的新开发。

考虑到您具备C和Java知识,并且考虑到您正在重新开始,我肯定会选择.NET。这只是更好地投资您的时间。

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


不是真的。微软可能计划在未来摆脱许多东西,问题是在多久的未来。VBA将在下一个Mac版Office中重新引入。VBA是一种古老的技术,但它不会很快消失。我不知道微软产品的生命周期确切是多少年,但我会说10年。我们公司仍然使用Office XP。 - guillermooo
我们仍然在使用Office 97!除了一些客户之外,我没有看到任何升级的真正理由超过100个。 - moster67
哎呀,我同情你们俩 :) - Thorarin
VBA将被添加回Mac Office的下一个版本中。VBA目前已经在正在进行测试的Office的下一个版本中。在我不那么谦虚的意见中,“微软计划在未来某个时候摆脱VBA。”是在散布恐惧、不确定性和怀疑。 - Tony Toews

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接