从 Python 调用 Excel 用户定义的函数总是 returns None
Calling an Excel user defined function from Python always returns None
我正在尝试从 python 调用的 Excel 函数中获取 return 值。
我总是得到一个 None
值。
这是 excel 函数:
Public Function GetString()
GetString = "aa"
End Function
电话是这样的:
xlApp.Run('ThisWorkbook.GetString')
返回:None
进入指定函数没有问题,因为我尝试从中修改单元格值并且它起作用了。
我错过了什么吗?
不清楚您是如何分配变量的 xlApp
。
假设代码像
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
xlApp = xlApp.Application
考虑:
您必须将结果分配给一个变量,如
myStr = xlApp.Run('ThisWorkbook.GetString')
您似乎将 ThisWorkbook
中的用户定义函数放在了 Excel 文件中。除非这是故意的,否则打开 Excel 文件,在 Visual Basic 编辑器中插入一个模块,然后将您的函数移到那里。相应地修改来自 Python 的调用。
您可能希望将函数定义为
Public Function GetString() as String
见
How to call Excel VBA functions and subs using Python win32com?
我正在尝试从 python 调用的 Excel 函数中获取 return 值。
我总是得到一个 None
值。
这是 excel 函数:
Public Function GetString()
GetString = "aa"
End Function
电话是这样的:
xlApp.Run('ThisWorkbook.GetString')
返回:None
进入指定函数没有问题,因为我尝试从中修改单元格值并且它起作用了。
我错过了什么吗?
不清楚您是如何分配变量的 xlApp
。
假设代码像
import win32com.client
xl = win32com.client.Dispatch("Excel.Application")
xlApp = xlApp.Application
考虑:
您必须将结果分配给一个变量,如
myStr = xlApp.Run('ThisWorkbook.GetString')
您似乎将
ThisWorkbook
中的用户定义函数放在了 Excel 文件中。除非这是故意的,否则打开 Excel 文件,在 Visual Basic 编辑器中插入一个模块,然后将您的函数移到那里。相应地修改来自 Python 的调用。您可能希望将函数定义为
Public Function GetString() as String
见 How to call Excel VBA functions and subs using Python win32com?