python与vba_萝卜头python:PYTHON 与VBA互调
1、python调用 VBA
假定我们的excel里边有个vba函数:foo,参数是args
其 VBA函数为
Sub test() 《============这个函数很重要,对应着python
Dim m
m = 1
Columns("G:G").Select
m = 1
On Error GoTo Err_Handle
For m = 1 To 65
Selection.Find(What:="男", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, MatchByte:=False, SearchFormat:=False).Activate
ActiveCell.Replace What:="男", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next m
Exit Sub
Err_Handle:
End Sub
PYTHON 调用
必须另存为xlsm文件格式
2. 第二,在执行Python脚本的时候必须是打开excel的
3. 必须新建模块(vba中)
4. vba代码必须有函数
5. office必须开启宏,否则不生效 6. 打开vba快捷键alt + f11
模块.png
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import win32com.client #导入模块
filename = "C:/Users/Administrator/Desktop/test.xlsm"
xls=win32com.client.Dispatch("Excel.Application")
xls.Workbooks.Open(Filename=filename) #文件路径
xls.DisplayAlerts = 0 #不显示警告信息
ret = xls.Application.Run("foo", args) #vba函数即参数
xls.Application.Quit() #运行完退出
2、xlwings:操作Excel,通过宏调用Pyhton(VBA调Python)
原文:
https://blog.csdn.net/qcyfred/article/details/80300354
xlwings的安装方式(更简单,如果有效的话,但不确定是否有效,慎重!)
1)安装xlwings
pip install xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple
查看版本
xlwings -V
显示最新版 :
xlwings 0.19.1
2)安装addin --是XLwings自带的
xlwings addin install
3)找到xlwings的addin文件夹,打开xlwings.xlam文件:
位置:
C:\Program Files\Anaconda3\Lib\site-packages\xlwings\addin\xlwings.xlam
双击打开文件xlwings.xlam
image.png
勾选RunPython: Use UDF Server
这样一旦执行py的话,会启一个黑窗口,此后执行py速度要比不勾选快
4)在EXCEL上,勾选VBA对xlwings支持:
开发工具--查看代码
打开代码选项。
然后:工具-应用--选择 xlwings
image.png
5)配置编译器 和 需要执行的py文件路径
image.png
interpreter:编译器,找到python.exe(我的是anaconda 3, 一步到位)
PYTHONPATH:py文件路径
6) 写宏,插入按钮,绑定宏
Sub hi()
RunPython ("from xw import say_hi; say_hi()") ‘xw为py文件,say_hi为函数名
End Sub
image.png
image.png
say_hi.py文件内容:
# -*- coding: utf-8 -*-
import xlwings as xw
def say_hi():
wb = xw.Book.caller()
sht = wb.sheets[0]
sht.range('A1').value = 'Hello, world'
7)开发工具 - 插入 - 表单控件(按钮)
编辑文字,指定宏
最后,点击按钮,Done!
python与vba_萝卜头python:PYTHON 与VBA互调相关推荐
- 微软 python替代vba_微软将要用Python取代VBA,Python工程师又双叒叕要涨薪了!
微软在上个月开启了一个针对 Excel 功能的话题,用以收集用户的反馈.随后有用户提议让Python成为Excel的一种脚本语言,不仅可以作为VBA的替代品,而且也可以作为字段函数(= SUM(A1: ...
- Excel的Python开发插件-- 完全替代陈旧的VBA
Excel数据分析处理和呈现利器-PyXLL技术特色介绍 "python开发环境和EXCEL的桥梁" 在Excel中窥探Python的神奇世界 Python已经在大数据分析,数据挖 ...
- python如何编程-如何入门Python编程
Python目前已经成为受欢迎的编程语言之一,吸引了一大批粉丝,但是很多人在要跨入的时候犹豫了,原因竟然是觉得学习Python太难了,真的是这样吗?入门Python编程学习有什么好的技巧吗? Pyth ...
- python数据分析与excel_读Python数据分析基础之Excel读写与处理
对于业务型数据分析来说,Excel可以说是打交道最多的软件了,可以说没有之一.之前有比较系统地读过<Python数据分析基础>(Foundations for Analysis with ...
- python索引例子_谈谈python中的索引
最近以python为工具,取代VBA处理工作中Excel遇到的小问题,我觉得其优点:一是语言更清爽友善,因为VBA的语言一来IDE难用,语法风格不大气优雅(我个人的见解):二是,我一直怀疑Excel对 ...
- excel调用python编程-超简单:用Python让Excel飞起
本书对于编程知识零基础的办公人士特别友好,其摒弃了晦涩的理论讲解,引入了实用的办公场景,为办公人士开辟了一条学习办公自动化的新路.本书精选典型办公案例以及通俗易懂的讲解,有助于办公人士掌握Python ...
- [转载] excel调用python编程-超简单:用Python让Excel飞起
参考链接: Python | 使用XlsxWriter模块在Excel工作表中绘制饼图 本书对于编程知识零基础的办公人士特别友好,其摒弃了晦涩的理论讲解,引入了实用的办公场景,为办公人士开辟了一条学习 ...
- python写金字塔_金字塔python开发手册
python API 基本方法 编写策略过程中所需要使用的基本函数.其中init和handle_bar是必须实现的两个方法,其余是可选择实现的方法. init (必须实现) init(context) ...
- python遥感图像处理_基于Python的矿山遥感监测系统开发方法
目前,很多学者都是从宏观上讨论遥感和GIS一体化集成的可能性及集成的方法,但这些研究在GIS和RS方向只是对Python集成研究的思路或某一功能的介绍,并没有一个基于Python开发的集成GIS与RS ...
最新文章
- 禁止ScrollView在子控件的布局改变时自动滚动的的方法
- WPC大会新动态:合作伙伴采纳Windows Azure
- 绘制分类界面以及性能曲面中的meshgrid函数
- 使用Oracle中fileopen命令加载文件时遇到的怪问题(转)
- MATLAB-字符串
- oracle取本月最后一天是星期几_oracle SQL语句取本周本月本年的数据
- 项目经理主要工作职责
- 探索Java日志的奥秘:底层日志系统-log4j2
- Java项目构建管理Maven的安装与配置
- C++笔记(9) 模板,向量和栈
- python os write_Python os.write() 方法
- MFS分布式文件系统搭建
- linux 使用 ioctl 参数
- 转http://www.anyliz.com/blog/article/Software/favorites-software-official-download-url.htm
- phpmyadmin 安装下载使用教程
- 嵌入式Linux--MYS-6ULX-IOT--构建交叉编译环境
- [ARC120F]Wine Thief
- matlab混频器的实现
- AD中对PCB的滴泪和敷铜操作
- 破解苹果电脑开机密码