如何将值从VBA传递给python

时间:2012-05-31 10:26:00

标签: python vba

我有一个VBA工具栏,我一直在努力。它有两个按钮,在过程结束时,它调用一个python脚本。 我想要做的是取决于点击两个按钮中的哪一个,python脚本的某个部分将运行,所以我想传递一个链接到按钮的值,然后发送到python脚本并运行。

我该怎么做?

由于

1 个答案:

答案 0 :(得分:1)

您可以将命令行选项传递给python脚本,就像使用其他命令行程序一样。根据按下的按钮,将不同的开关传递给您的程序。

在您的情况下,根据按下的按钮在命令行中传入一个值可能是最简单的,并从sys.argv变量中选择它:

import sys

def fooClicked():
    # Stuff to do when Foo was clicked

def barClicked():
    # Stuff to do when Bar was clicked

button = sys.argv[1]
if button == 'foo':
    fooClicked()
elif button == 'bar':
    barClicked()

(您可以使用dict查找方法,但这可能过于先进,不知道您对Python有多舒服)。

因此,如果您使用python.exe H:\Report_v7.py foo调用此脚本,则会调用fooClicked函数。

如果这将增长到超过两个按钮,我将使用optparse模块来定义您的选项并根据所选的选项运行不同的代码路径。

如果升级到Python 2.7,请改用新的(更好的)argparse模块。