我应该使用Python而不是VBA吗?

时间:2012-01-23 11:52:22

标签: python excel vba ms-access-2007

我一直在为财务会计模型构建一个演示(可能是一个小应用程序)。我正在使用VBA / Excel进行数据输入(例如表格),计算和结果表示,我也从VBA程序向MS Access数据库运行SQL问题。原则上,这些组件的功能对我来说相当不错(我意识到VBA有点过时并且不是最流畅的)。 我已经这样做了一段时间了(而且我是一名具有其他语言的古老经验的工程师,虽然从未作为程序员工作过)并且几乎完全处于最佳状态,并且似乎能够找到我所做的编程错误。但是,当发生故障时我倾向于对VBA发疯,这似乎不是由我引起的,而是由于VBA的不稳定/缺点。

所以我的问题是,完全没有使用Python:我可以基本上使用上面描述的Python吗?你能不能让我知道Python是否比VBA / Excel更稳定,更不容易出错? (我使用的是Windows 7) 感谢建议

2 个答案:

答案 0 :(得分:9)

如果您决定使用Python来推动Office应用程序的自动化,请查看Python Win32 Extensions

然而,我怀疑是可取的。它需要你安装和学习Python。如果这是您分发给用户的应用程序,他们也需要安装Python。

此外,您提供的有关声明变量的示例表明,您可以更好地花时间学习VBA以及要自动化的Office应用程序的对象模型。在那个例子中,你错误地解释了你对VBA基础的缺乏理解,因为VBA容易出错"。 Python不会帮助你。

答案 1 :(得分:2)

我强烈建议你用Python做到这一点。 Python已成为数据分析的事实标准。 Microsoft正在考虑将Python添加到Excel:https://news.ycombinator.com/item?id=15927132

但它还没有被添加:https://excel.uservoice.com/forums/304921-excel-for-windows-desktop-application/suggestions/10549005-python-as-an-excel-scripting-language

尽管如此,您在VBA中可以做的一切都可以通过python以及更多使用以下任何库来完成:

  1. Xlwingshttps://github.com/ZoomerAnalytics/xlwings
  2. Pywin32https://github.com/Googulator/pypiwin32
  3. Pyspreadhttps://manns.github.io/pyspread/
  4. Xlswriter / Xlsread
  5. 其中我建议您使用xlwings。我用过它,它完美无瑕。您甚至可以通过python代码执行VBA。因此,您可以充分利用这两个方面,即使用python中的任何数据分析包进行计算,以及何时需要(但无法访问VBA公开的函数,但xlwings本身不支持)您可以直接在Excel中调用VBA函数。