从Python调用Excel用户定义的函数总是返回None
我试图从我从python调用的Excel函数获取返回值。 我总是得到一个None
值。
这里是excel函数:
Public Function GetString() GetString = "aa" End Function
这是电话:
xlApp.Run('ThisWorkbook.GetString')
返回: None
我没有问题进入指定的function,因为我试图修改它的单元格值,它的工作。
我错过了什么?
目前还不清楚你如何分配你的variablesxlApp
。 假设代码如
import win32com.client xl = win32com.client.Dispatch("Excel.Application") xlApp = xlApp.Application
考虑:
-
你必须把结果赋给一个variables,如
myStr = xlApp.Run('ThisWorkbook.GetString')
-
您似乎已将用户定义的函数放在
ThisWorkbook
中的Excel文件中。 除非有意为之,否则请打开Excel文件,在Visual Basic编辑器中插入一个模块,然后在那里移动您的函数。 相应地修改你的来自Python的调用。 -
你可能想要定义这个函数
Public Function GetString() as String
请参阅如何使用Python win32com调用Excel VBA函数和子集?