python自定义函数的功能_Excel vba里使用python自定义函数。-ExcelVBA程序开发-ExcelHome技术论坛 -...

本帖最后由 fxl447098457 于 2018-12-22 10:41 编辑

今天讲一下怎么在vba里面使用python的自定义函数。在vba板块提下python主要是python的包很多。对于我们来说,直接拿轮子过来用用肯定是很好的事情,复杂的原理,背后的算法与我无关。通过沟通python和excel主要是通过一个名为xlwings的加载项作为连接的纽带,从而实现互通。下面主要写以下几点:

1.如何搭建excel和python交互的环境

python软件是不可或缺的。我们需要使用python的包和解释器。你可以选择原生的python或者anaconda(带了大量的科学计算的包和软件)或者minconda(anconda的精简版,很多包需要自己安装)。我使用的是miniconda配上python3.6.7的环境(安装路径:F:\ProgramData\Miniconda3,这个你自便,我是方便后面引用.),对于生手我建议直接安装anaconda或者miniconda,安装管理少了很多折腾.安装完python以后我们需要安装xlwings包。下面的教程我都以anaconda/miniconda来解说了。

找到开始菜单里面anaconda/minconda 的快捷方式Anaconda Prompt命令提示符打开,使用pip install xlwings或者conda install --y xlwings。如下图我使用conda,由于我安装过了,所以提示already installed.其他需要安装的包依旧是这么安装的。

none.gif

TIM截图20181221191023.png (7.2 KB, 下载次数: 12)

2018-12-21 19:11 上传

安装完以后我们需要安装xlwings 加载项。这个是加载到excel里面的。使用xlwings addin install命令即可以完成安装。

none.gif

6.png (2.64 KB, 下载次数: 13)

2018-12-21 19:45 上传

然后我们重新打开excel文件就可以发现excel里面已经加载成功了。如:

none.gif

5.png (23 KB, 下载次数: 11)

2018-12-21 19:47 上传

然后我们需要配置一下解释器路径了。就是上图的interpreter方框和pythonpath方框。第一个填的是python.exe/pythonw.exe的路径。我用的是pythonw.exe,它在运行时候不会出现窗口。带上完整的安装路径。例如我的interpreter方框里面填写的是:F:\ProgramData\Miniconda3\envs\python36\pythonw.exe。然后pythonpath是要运行的py代码文件所在的文件夹路径。你使用哪个文件夹集中管理存放你的python代码文件,就填写文件夹所在路径.我这里是用了F:\Desktop作为python代码文件存放的地方。然后我们再看udf modules哪个方框。那里面填写的是此工作簿要调用的python代码文件名称,不需要带上后缀名。

下面我们来简单测试一个加载项是否能用。xlwings加载项扩展了一个sql函数。这个函数我们可以直接用。就像excel里面的函数一样。sql这个函数第一个参数是sql语句。第二个不固定的参数,代表sql语句使用的表的范围。

如下图我要查询“原始表格”工作表里产品名称为“气球”的所有数据放到“需求末班”工作表里:

none.gif

2.png (63.64 KB, 下载次数: 14)

2018-12-21 20:01 上传

如下图:我在“需求末班”工作表里的A18单元格输入=sql("select * from a where 产品名称='气球'",原始表格!A2:J33)并按下enter键后,结果自动生成了数组公式,并得到我要的查询结果。sql语句中的a为第一个参数范围表的别名,自动对应的。如果你在sql语句中使用多个别名,那么后面的需要多个参数表一一对应sql语句的。看下第二图里面的双表查询,应该可以理解了吧。到了这里运行ok的话也说明我们的python和xlwings加载项都成功安装了。该进入下一个环节了。

none.gif

11.png (54.04 KB, 下载次数: 11)

2018-12-21 20:06 上传

none.gif

sql.png (83.58 KB, 下载次数: 7)

2018-12-22 10:40 上传

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值