我有一個我一直在研究的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