3

我想让我的男朋友尝尝编程的味道。如果由我决定,我会教 Scheme、Haskell 或 F#,但因为他更愿意学习对他作为财务顾问的工作有用的东西,即 Excel 编程。

Excel 编程有哪些选择?对于刚刚学习编程但想要完成任务的人,您会推荐哪一个?你有什么书/资源推荐给他(高级 Excel 用户,初级程序员)或我(中级 Excel 用户,高级程序员)吗?

谢谢。我创建了一个关于 Excel 编程的博客来记录我们的发现。

4

6 回答 6

5

作为一名长期(商业)Excel 用户和程序员,我建议从一本好的 VBA 书籍开始,重点介绍 Basic 语言的关键特性,以及如何与 Excel 对象(工作簿、工作表等)进行通信。最初,我不会担心用户表单——我已经很多年没有使用过用户表单了——起初我也不会太担心数据库。

我建议特别关注两个领域,从 Basic 语言本身开始,使用 Debug.Print 将输出写入即时窗口,并忽略附加了 Excel 的事实。通过解决一些欧拉问题,您可以在这方面获得很好的实践,这些问题有利于没有用户界面的纯代码解决方案。

之后,我将学习如何与 Excel 对象对话,并阅读尽可能多的 Excel 论坛和网页以获取技巧。例如,一次读取和写入多个单元比一次读取一个要快得多。

是的,VBA 不像大多数“专业”语言那样功能齐全,但与大多数语言相比,它有一个关键优势——它更容易编写,普通用户也可以检查、修改和维护——而且可检查性和灵活性是在商业世界中至关重要。与 Excel 一起,它是一个了不起的商业工具。

于 2008-11-10T14:34:47.633 回答
2

基本上有两个大的选择:他可以编写 VBA 代码(宏)或 .NET 代码。

VBA 代码建立在简单的语言之上,门槛低。但是,如果他对一般编程感兴趣,那么学习 .NET(最好是 C#)可能会更好。它比 VBA 强大得多,并且会教他更多关于正确的软件构造和它背后的基本概念的知识。

我认为最好让他先编写一些愚蠢的小 Winforms 应用程序以了解基础知识,然后再研究 Excel 互操作性。您可以通过谷歌搜索“C# Excel”找到一堆 C#/Excel 互操作代码示例。这是一个例子:

http://dotnetperls.com/Content/Excel-Interop-Performance.aspx

于 2008-11-10T10:07:27.577 回答
1

至少在运行时方面,VBA 是 VB6。它有足够的 OO 能力来理解封装和(排序,不想引发一场宗教战争)多态性/继承,如果您接受接口提供这些方面的某些方面的话。如果他在 Excel 中花费大量时间,那么我希望他目前所做的一些重复性的事情可以从录制宏中受益,然后学习清理它。这可能导致编写他自己的工作表函数、循环和各种有用的东西。如果他真的很先进(小测验:他知道将公式放在名称中吗?他对数组公式感到满意吗?)那么他就会对 VBA 可以提供帮助的事情感到恼火。

我想我现在会忽略.Net,它太大了,他需要很长时间才能产生自己的解决方案。

或者,只教他 Ruby。当我的孩子们从Scratch继续前进时,这就是我要开始做的事情。

于 2008-11-10T10:56:08.963 回答
1

对于刚接触开发并希望掌握基础知识的人来说,VBA 是一个很好的起点。通过利用 Excel 或 Word COM 库,可以通过多种不同的语言对 Excel 进行编程。这可以用 C# 等语言轻松完成,但不适合刚开始编程的人。

只是提醒一下。尽管 VBA 是一种功能齐全的编程语言并且能够支持复杂的应用程序,但它会鼓励不良的编程实践。我已经看到这种情况发生在广泛使用 Excel 进行精算计算的大型组织中。本质上,代码是由精算师编写的,考虑到财务计算——而不是软件工程。

从长远来看,Java 或 C# 等企业编程语言会更好。

于 2008-11-10T10:59:03.603 回答
0

宏是编写 Excel 的一种方法。查看此 YouTube 视频: http://in.youtube.com/watch?v= k_fWcffRAG4 它演示了如何录制和使用宏。

于 2008-11-10T10:03:56.680 回答
0

你可以用 VBA 做很多事情,可能比金融界的人想做的还要多。我相信,VBA 就是为这样的人设计的,但它通常会受到负面报道。我认为,如果你是一名程序员,如果你的男朋友教你的 VBA,他会对编程有所了解,并且还必须提供一个非常有用的工作工具,远远领先于通过录制宏可以实现的任何事情。此外,从 VBA 到 VBScript 只需很短的一步。

于 2008-11-10T10:22:28.873 回答