Python xlwings 中的用户定义函数

Python User Defined Function in xlwings

我正在尝试弄清楚 xlwings。我有以下 python 代码:

from xlwings import xlfunc
from datetime import timedelta, datetime

@xlfunc
def convert(gmt):

    gmtValue = datetime(int(gmt[6:10]), int(gmt[3:5]), int(gmt[0:2]), int(gmt[11:13]), int(gmt[14:16]), int(gmt[17:19]))
    localTime = gmtValue - timedelta(seconds=(6*3600))
    return localTime

它所做的只是获取时间戳字符串,例如 05/01/2016 14:25:56 GMT 并取消 GMT 并将其转换为当地时间(美国中部时间)。我正在尝试将该代码与:

一起使用
Sub convertToLocal()
    RunPython(“import converToLocal; convertToLocal.convert(gmt)”)
End Sub

创建用户定义函数,但 Excel 似乎无法识别 python 代码,即使我导入了 xlwings.bas 模块。我得到的唯一错误是“编译错误:语句预期结束”。我认为这只是意味着 Excel 无法识别 python 代码。知道如何解决吗?另外,将单元格的内容传递到 python 代码的正确方法是什么?

RunPython 和装饰器语法是两种不同的方法。要使用装饰器执行用户定义的函数,请遵循指南 here。您需要使用 add-in 导入这些函数,不需要 RunPython