从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 

考虑:

  1. 你必须把结果赋给一个variables,如

    myStr = xlApp.Run('ThisWorkbook.GetString')

  2. 您似乎已将用户定义的函数放在ThisWorkbook中的Excel文件中。 除非有意为之,否则请打开Excel文件,在Visual Basic编辑器中插入一个模块,然后在那里移动您的函数。 相应地修改你的来自Python的调用。

  3. 你可能想要定义这个函数

    Public Function GetString() as String

请参阅如何使用Python win32com调用Excel VBA函数和子集?