代码之家  ›  专栏  ›  技术社区  ›  namin

编程Excel

  •  3
  • namin  · 技术社区  · 17 年前

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

    Excel的编程选项有哪些?你会为那些刚学会编程却又想完成任务的人推荐哪一个?有没有你推荐给他(高级Excel用户、初级程序员)或我(中级Excel用户、高级程序员)的书籍/资源?

    谢谢。我已经开始了 a blog about programming Excel 记录我们的发现。

    6 回复  |  直到 10 年前
        1
  •  5
  •   dbb    17 年前

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

    我建议重点关注两个方面,从基本语言本身开始,用debug.print将输出写入即时窗口,忽略附加了Excel的事实。你可以通过解决一些 Euler problems 它支持没有用户界面的纯代码解决方案。

    之后,我将学习如何与Excel对象交谈,并阅读尽可能多的Excel论坛和网页来获取提示。例如,一次读写多个单元格要比一次写一个快得多。

    是的,vba并不像大多数“专业”语言那样功能齐全,但它有一个比大多数语言都重要的优势——它更容易编写,对普通用户来说,检查、修改和维护——可检查性和灵活性在商业世界中至关重要。与Excel一起,它是一个令人惊叹的业务工具。

        2
  •  2
  •   Alexander Malfait    17 年前

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

    基于简单语言构建的VBA代码具有较低的阈值。但是,如果他对编程感兴趣,学习.NET可能会更好(最好是C)。它比VBA强大得多,将教会他更多关于正确的软件结构和背后的基本概念。

    我认为最好让他先编写一些愚蠢的小WinForms应用程序,了解基本知识,然后再查看ExcelInterop。你可以通过谷歌搜索“c excel”找到一系列c/excel interrop代码的例子。下面是一个例子:

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

        3
  •  1
  •   Mike Woodhouse    17 年前

    vba至少在运行时是vb6。它有足够的OO能力来理解封装和(Sorta,不想发动宗教战争)多态性/继承,如果您接受接口提供了这些方面的一些方面的话。如果他花很多时间在Excel上,那么我希望他现在做的一些重复性的事情可以从记录宏中获益,然后学习清理宏。这会导致编写自己的工作表函数、循环和各种有用的东西。如果他真的很先进(流行测验:他知道如何命名公式吗?他对数组公式是否满意?)然后他会对一些事情感到恼火,因为VBA可以帮助他。

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

    或者,教他红宝石。当我的孩子们从新搬来的时候,我要让他们从新开始。 Scratch .

        4
  •  1
  •   Richard Dorman    17 年前

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

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

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

        5
  •  0
  •   Balaji Sowmyanarayanan    17 年前

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

        6
  •  0
  •   Fionnuala    17 年前

    你可以和vba做很多事情,可能比金融界的人想做的要多。我相信,vba是为这样的人设计的,但它通常会受到不好的压力。我认为,如果你,一个程序员,教你的男朋友vba,他会发展一些编程的理解,也必须为工作提供一个非常有用的工具,远远领先于任何可以通过记录宏实现的东西。此外,这是从vba到vbscript的一个非常短的步骤。