我有一个我一直在研究的VBA工具栏。它有两个按钮,并且在进程结束时,它调用一个python脚本。 我想要做的是取决于哪个按钮被点击,python脚本的某个部分将运行,所以我想传递一个链接到按钮的值,然后发送到python脚本并运行。如何将VBA的值传递给python
我该怎么做?
感谢
我有一个我一直在研究的VBA工具栏。它有两个按钮,并且在进程结束时,它调用一个python脚本。 我想要做的是取决于哪个按钮被点击,python脚本的某个部分将运行,所以我想传递一个链接到按钮的值,然后发送到python脚本并运行。如何将VBA的值传递给python
我该怎么做?
感谢
你可以通过命令行选项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()
(你可以使用的字典查找方法,但这可能太先进了,不知道你对Python有多么舒服)。
因此,如果您使用python.exe H:\Report_v7.py foo
调用此脚本,fooClicked
函数将被调用。
如果这将增长到不止两个按钮,我会使用optparse
模块来定义您的选项并根据所选选项运行不同的代码路径。
如果您升级到Python 2.7,请改用新(更好)的argparse
模块。
非常感谢,我已经得到它的工作。 – MapMan
你如何运行Python脚本?通过一个新的命令行进程? –
Martijn,在VBA代码中,我有以下'code'Shell“C:\ Python25 \ python.exe”“H:\ Report_v7.py” – MapMan