使用 XLwings 将变量从 Excel 传递到 Python

use*_*044 2 python excel vba xlwings

我正在尝试用 Python 编写一个简单的用户定义函数,我将一个值传递给 from Excelvia Xlwings。我遇到了一些带有加载项的示例,您需要导入用户定义的函数,但这似乎过于复杂。

为什么我的例子不起作用?

VBA:

Function Hello(name As String) As String
    RunPython ("import Test; Test.sayhi(name)")
End Function
Run Code Online (Sandbox Code Playgroud)

蟒蛇(Test.py):

from xlwings import Workbook, Range

def sayhi(name):
    wb = Workbook.caller()
    return 'Hello {}'.format(name)
Run Code Online (Sandbox Code Playgroud)

错误:

NameError: name 'name' is not defined
Run Code Online (Sandbox Code Playgroud)

Tim*_*ams 5

确保您正确提供了参数:

RunPython ("import Test; Test.sayhi('" &  name & "')") 
Run Code Online (Sandbox Code Playgroud)