1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python用户自定义函数_VBA: 用户自定义函数 (UDFs)

python用户自定义函数_VBA: 用户自定义函数 (UDFs)

时间:2023-07-01 16:18:27

相关推荐

python用户自定义函数_VBA: 用户自定义函数 (UDFs)

# VBA: 用户自定义函数 (UDFs)

本教程将帮助您快速了解如何编写用户自定义函数。

>[info]注意

·UDF目前仅在Windows上可用。

·有关如何控制参数行为和返回值的详细信息,请查看[转换器和选项](converters.md)。

·有关可用装饰器及其选项的全面概述,请查看相应的API文档:[api](api.md)。

## 一次性Excel准备

1) 在`文件>选项>信任中心>信任中心设置>宏设置`下启用`信任访问VBA项目对象模型`

2. 通过命令提示符安装加载项:`xlwings addin install`(参见[加载项](addin.md))。

## 工作簿准备

启动新项目的最简单方法是在命令提示符下运行`xlwings quickstart myproject`(请参阅[命令行客户端](command_line.md))。 这会自动将xlwings引用添加到生成的工作簿。

## 一个简单的UDF

默认的插件设置需要一个Python源文件,其方式与`quickstart`一样:

* 在与Excel文件相同的目录中

* 与Excel文件同名,但使用`.py`结尾而不是`.xlsm`。

或者,您可以通过xlwings功能区中的`UDF Modules`指向特定模块。

假设您有一个工作簿`myproject.xlsm`,那么您可以在`myproject.py`中编写以下代码:

~~~

import xlwings as xw

@xw.func

def double_sum(x, y):

"""返回两个参数之和的两倍"""

return 2 * (x + y)

~~~

* 现在单击xlwings选项卡中的`Import Python UDFs`以获取对`myproject.py`所做的更改。

* 在单元格中输入公式`= double_sum(1,2)`,您将看到正确的结果:

![](https://i.vgy.me/WWFx3y.png)

* 文档字符串(三引号)将在Excel中显示为函数描述。

>[info]注意

·如果更改函数参数或函数名称,则只需重新导入函数。

·自动拾取实际函数中的代码更改(即,在下一次计算公式时,例如,由`Ctrl-Alt-F9`触发),但导入的模块中的更改不会。 这是Python导入工作方式的行为。 如果要确保所有内容都处于新鲜状态,请单击`Restart UDF Server`。

·当函数导入Excel时,`@xw.func`装饰器仅由xlwings使用。 它告诉xlwings它应该创建一个VBA包装函数的函数,否则它

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。