|
本帖最后由 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.其他需要安装的包依旧是这么安装的。
安装完以后我们需要安装xlwings 加载项。这个是加载到excel里面的。使用xlwings addin install命令即可以完成安装。
然后我们重新打开excel文件就可以发现excel里面已经加载成功了。如:
然后我们需要配置一下解释器路径了。就是上图的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语句使用的表的范围。
如下图我要查询“原始表格”工作表里产品名称为“气球”的所有数据放到“需求末班”工作表里:
如下图:我在“需求末班”工作表里的A18单元格输入=sql("select * from a where 产品名称='气球'",原始表格!A2:J33)并按下enter键后,结果自动生成了数组公式,并得到我要的查询结果。sql语句中的a为第一个参数范围表的别名,自动对应的。如果你在sql语句中使用多个别名,那么后面的需要多个参数表一一对应sql语句的。看下第二图里面的双表查询,应该可以理解了吧。到了这里运行ok的话也说明我们的python和xlwings加载项都成功安装了。该进入下一个环节了。
|
评分
-
20
查看全部评分
-
|