我应该用Python代替VBA吗?

我应该用Python代替VBA吗?,python,excel,vba,ms-access-2007,Python,Excel,Vba,Ms Access 2007,我正在为财务会计模型构建一个演示(可能是一个小应用程序)。我使用VBA/Excel进行数据输入(如表格)、计算和结果显示,我还通过VBA程序向MS Access数据库运行SQL问题。原则上,这些组件的功能对我很有用(我意识到VBA有点过时,不是最流畅的)。 我做这件事已经有一段时间了(我是一名工程师,有着其他语言的一些古老经验,尽管我从未做过程序员),我对事情了如指掌,似乎能够找到我犯的编程错误。然而,当故障发生时,我倾向于对VBA发火,这些故障似乎不是由我引起的,而是由于VBA的不稳定性/缺点

我正在为财务会计模型构建一个演示(可能是一个小应用程序)。我使用VBA/Excel进行数据输入(如表格)、计算和结果显示,我还通过VBA程序向MS Access数据库运行SQL问题。原则上,这些组件的功能对我很有用(我意识到VBA有点过时,不是最流畅的)。 我做这件事已经有一段时间了(我是一名工程师,有着其他语言的一些古老经验,尽管我从未做过程序员),我对事情了如指掌,似乎能够找到我犯的编程错误。然而,当故障发生时,我倾向于对VBA发火,这些故障似乎不是由我引起的,而是由于VBA的不稳定性/缺点

所以我的问题是,对Python完全没有经验:我基本上可以使用上面描述的Python吗?你能告诉我Python是否比VBA/Excel更稳定,更少“出错”吗?(我正在使用Windows7)
感谢您的建议

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

然而,我怀疑这是否明智。这需要您安装并学习Python。如果这是一个分发给用户的应用程序,那么他们也需要安装Python


此外,您提供的关于声明变量的示例表明,您最好将时间花在学习VBA和希望自动化的Office应用程序的对象模型上。在该示例中,您将自己对VBA基础知识的缺乏理解误解为“VBA容易出错”。Python不会帮你解决这个问题。

我强烈建议你用Python来解决这个问题。Python已经成为数据分析的实际标准。Microsoft正在考虑向excel中添加
Python

但它还没有被添加:

尽管如此,您可以在
VBA
中执行的所有操作都可以通过python或其他使用以下任何库来完成:

  • Xlwings
  • Pywin32
  • Pyspread
  • Xlswriter
    /
    Xlsread

  • 其中我建议您使用
    xlwings
    。我用过它,它工作得非常完美。甚至可以通过python代码执行
    VBA
    。因此,您可以两全其美,即在需要时使用python中的任何数据分析包进行计算(但无法访问VBA公开的函数,但不受
    xlwings
    本机支持的函数)您可以直接调用Excel中的
    VBA
    函数。

    这始终取决于您对VBA过程的具体操作,尽管如此;VBA可以非常稳定,如果它写得很好,你有任何错误的例子,有时发生在代码样本中吗?很抱歉,我看不到任何东西,哪些例子?-当我处理“形状”时,系统返回了一个错误(忘记了准确的公式/错误号),我找到了解决方案:Dim s1,s2作为形状应写成s1、s2、s3作为形状。关键似乎是我添加了s3,它没有被使用,以使其工作。如果我把它拿走,至少错误会回来。这已经不止一次了有时系统会说没有记录(来自SQL查询),尽管有记录(我在Access中直接尝试了相同的查询)。我有点被困在这一点上,是否有更完整的代码示例,包括错误发生的地方?FWIW:关于python与VBA的初始问题。。。1) 为了引起python专家的注意,应该包括python标记。2) 如果要在Excel中创建工具,请使用VBA。如果您希望自动化Excel&Access,您可以使用python,但您仍然需要在Excel中构建表单,因此仍然需要使用宏/VBA。3) Python是一种很棒的语言,但在这个例子中VBA似乎更合适。对不起,我不得不离开。如何在我的评论中包含更长的代码?当我尝试将其粘贴到注释中时,我得到了“-xx个字符”。@user1164822您可以在GitHub中托管代码,或者您应该根据答案尝试
    xlwings