【发布时间】:2017-04-01 04:16:07
【问题描述】:
编辑:这是同一个问题,但我重写了它,所以它更清晰。
我已经尝试过这个帖子:How to call python script on excel vba?
还有这个帖子:Run and execute a python script from VBA
还有这个帖子:How can I call python program from VBA?
但是没有一个答案对我有用,我不知道我做错了什么。问题 1:我想从 VBA excel 运行 pythonscript。 excel 文件没有归宿(可以在任何桌面上)。我(想要)使用的代码:
Dim Ret_Val
Ret_Val = Shell("C:\python27\python.exe \\10.31.13.22\SharedDocs\3 - Technical\13 - Reports & Templates\13 - Description\DescriptionToDatabase.py")
pythonfile 在服务器上始终具有相同的路径。我看不出这里有什么问题吗?我得到的只是一个黑色的蟒蛇屏幕。
在 python 文件中,我调用了工作簿和正确的工作表:
book = xlrd.open_workbook("//10.31.13.22/SharedDocs/3 - Technical/1 - Projects/0 - Internal/RPA 138 - Engineering software/testchipdescription/upload to database/testchipdescription-template-10-11.xltm")
sheet = book.sheet_by_name("Database")
目前,excel 工作簿路径在 python 中是硬编码的。这会让我回到问题 2:我可以以某种方式将 excel 工作簿的名称和路径传递给我的 pythonscript 吗?
编辑:
我在命令提示符下尝试了 shell() 代码。 与 VBA 相同:
"C:\python27\python.exe \\10.31.13.22\SharedDocs\3 - Technical\13 - Reports & Templates\13 - Description\DescriptionToDatabase.py"
它不起作用。 '系统找不到指定的路径'。
我试过这个:
C:\python27\python.exe "\\10.31.13.22\SharedDocs\3 - Technical\13 - Reports & Templates\13 - Description\DescriptionToDatabase.py"
而且它有效!所以cmd需要""来处理路径中的空格。但是我不能在 VBA 中添加它们,因为我不能放置 2 "" 否则会出错。
【问题讨论】: