-
Excel VBA 开发入门
2012-09-19 00:52:06最近公司有个需求,就是把多个文档中的内容合并到一个文档中,这个有多个解决方案,在本文采用的是VBA编程的方法,用Microsoft Excel 2007进行开发。 Visual Basic For Application(VBA)是微软开发出来的应用...最近公司有个需求,就是把多个文档中的内容合并到一个文档中,这个有多个解决方案,在本文采用的是VBA编程的方法,用Microsoft Excel 2007进行开发。
Visual Basic For Application(VBA)是微软开发出来的应用程序共享的一种通用的自动化语言,可以看作是VisualBasic 的子集。
首先,打开Excel,点击左上角的Office按钮--->Excel选项,在“常用”选项卡中将“在功能区显示开发工具选项卡”打勾,
然后点确定,Excel的菜单栏上会出现“开发工具”。
点击宏,可以查看宏或者创建一个宏。
创建后进入到VB的编程界面,在这个界面上可以进行VB代码的编写,或者设断点去做调试。
在这个界面上你可以按照自己的需求编写宏,具体可以参考帮助文档,这份官方的参考文档挺详细的,基本上可以搞定大部分问题。菜单栏:帮助-->Microsoft VisualBasic 帮助
还有一个插入控件的功能,可以加入表单控件和ActiveX控件到Excel上并进行类似于桌面应用程序的编程。
这里有个小技巧,当你不太清楚怎么编写宏的时候,可以返回到Excel界面。在开发工具面板上点击录制宏,
然后进行相应的操作,操作完后点击“停止录制”,就会产生跟刚才操作相对应的代码,我们可以参考这些代码去编程。
那怎么运行宏呢,可以通过下面两种方式去运行吧,直接上图好了。
-
EXCEL2007VBA与宏完全剖析 1/4
2012-03-31 14:42:033.11 使用Union方法合并多个区域 3.12 使用Intersect方法根据重叠区域创建新区域 3.13 使用IsEmpty函数检查单元格是否为空 3.14 使用CurrentRegion属性快速选择数据区域 3.15 使用区域集合返回非连续... -
python小程序嵌入excel_python3解决excel多表格数据归集合并痛点,制作exe小程序分发使用...
2020-12-20 20:45:38excel多表数据合并一直是excel的痛点,面对收集来的上百张表格,如果用户需要一个一个打开复制粘贴...需求:存在多个excel表,每个表存在多个sheet,需要将某一张表中的某个sheet内容明细归集在一起。开发语言pytho...excel多表数据合并一直是excel的痛点,面对收集来的上百张表格,如果用户需要一个一个打开复制粘贴耗时耗力,容易出差错。本人集团工作中面对这种问题一直很无力。传统办法是通过vba进行编程实现。但使用python可以更优雅的处理此类问题,而且移植、复用 扩展均可以简单完成。
需求:存在多个excel表,每个表存在多个sheet,需要将某一张表中的某个sheet内容明细归集在一起。
开发语言python3,系统win10 64位
附件内容:excelSummary.py为开发源代码,数据归集小程序1.0.rar为打包好的小程序内有配置文件。
实现的功能点:
1、用户可以通过修改配置,可以实现 1.1控制聚合表头所在行,解决用户表头不在第一行的情况。1.2 模糊匹配sheet名称,解决sheet名称不规范问题,如果直接获取第一个可以直接输入*。 1.3控制明细表格所在路径。1.4 用户可以直接填写列名称控制获取对应类,过滤无用列。
2、获取明细文件夹下的xls或者xlsx文件 填入csv文件中,在csv中是实现增行。注意再一次执行 如果不删除《数据归集.csv》文件,数据再次添加行数,重新执行时注意删除。
3、由于最终填入的csv文本格式,而非xls格式,这样对内存消耗很小,可以支撑较大数据量的数据归集,也方便excel或者其他程序再处理。
4、通过pyinstaller 打包成exe, win10 64位用户解压后直接双击exe可直接运行,无需安装python3,通过list和for循环实现,程序文件较小携带方便。
局限:只做到可多表格中的一个sheet内容 合并增行。还有一种业务行场景要求增列,这个以后试试实现。
如果有优化建议 bug或者给问题请留言。(新手程序注释不到位,以后有时间再搞搞,有需要讲解的可以留言)。我会继续优化或者扩展这个小程序。比如这个是增行版本,以后可以出增列版本或者单表多sheet合并之类的。
原创内容,转载请注明。
-
语言建立一个学生籍贯管理簿_Excel中一个被严重忽视的大杀器功能
2021-01-13 23:30:44一说到Excel工作簿内容合并、多工作簿查询、外部数据源的查询引用的实现,那么很多人第一想法就是使用公式、VBA、Power query。没错,这几个确实可以。我本人是一个Power query重度依赖者,经常使用PP来做数据查询。...一说到Excel工作簿内容合并、多工作簿查询、外部数据源的查询引用的实现,那么很多人第一想法就是使用公式、VBA、Power query。没错,这几个确实可以。我本人是一个Power query重度依赖者,经常使用PP来做数据查询。可后来慢慢的发现,Power query问题真的很多,比如说占用内存太大、运行非常缓慢。另外,一些低版本的Excel不支持PP,同时WPS也是不支持PP的。这个让我非常头疼,于是不得不找其它办法。于是在不经意间发觉了以下这个一直被忽视的东西:Microsoft Query。于是,我就使用这玩意试着分别连接SQL Server做了一个动态财务的科目汇总表查询,和连接Access做了一个动态查询。效果如下:
科目汇总查询表 工程款支付查询表 以上,两个测试完全实现了使用参数的动态查询。以往,实现这种效果,要么使用VBA、要么使用power query。以下,我们来看一下怎么实现它呢。
1、打开菜单栏,找到Microsoft Query的
2、进入数据源配置界面
这里已经存在了常用的Excel、Access这两种数据源连接方式。但其他的,我们需要单独建立。在此以SQL Serve为例。
刚才建立的数据源就出现在了列表里面
接下来我们来看如何实施查询
首先,选择一下数据库,然后添加一下需要用到的表
以上这个界面,作为使用过Foxpro的人应该不陌生,果然是上古的杰作。我们看到,从数据添加的表,自带了表间关系。这个非常省心,如果是Excel查询,那么就得自己建立表间关系了。
接下来,我们把需要用到的的字段全部添加到列表里面,因为有表间关系,会自动做数据参照。查询器里面的好多细节操作,在此就不过多描述了。
现在我们来看一下,查询器自己生成的 SQL语句
在使用过程中,因为需要做动态查询,因此加入了查询参数,然后这部分参数又被绑定到了工作表的单元格上。只要在这部分单元格就可以作为查询条件来使用,只要这部分单元格数值有变动,那么查询就会同步更新,根本不需要刷新或者添加按钮来执行查询。具体如下:
现在,让我们来看看,做出同样效果的东西,VBA和Power Query的工作量:
首先,来看VBA的工作量:
1、单独设计的查询界面
2、部分VBA代码
至于power query稍微好一些,在引入数据的时候一句SQL语句就能解决,但是这货对于使用参数做动态查询实在太麻烦,需要合并好几几次查询才行。
最后,对比Microsoft Query、VBA、Power query。可以说Power Query应该是Microsoft Query 的升级版,但是PQ使用的是M语言,在使用便利性和性能上不占优势,随便一个查询动辄就是几个G的内存占用,分分钟就死机。使用过多以后,感觉目前的PQ,还真只是一个玩具,它还有很大的改进空间。而VBA,这个看似无所不能,但正是无所不能才更加不那么好控制。至于Microsoft Query而言,并非没有缺点,最大的缺点我认为是多表连接查询时候没法使用左连接、右连接以及外部连接,只能使用内部或者说等值连接。所以,对于日常的合并工作表,还是建议使用MQ。
-
EXCEL集成工具箱V8.0 多国语言版(2003-2010通用)
2010-09-11 12:08:58隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010版的朋友使用。 ===================================================================================... -
EXCEL集成工具箱V9.0 多国语言最终原版(2003-2010通用)
2011-01-07 20:40:25【EXCEL比较工具】 打开并比较任意两个EXCEL文档工作表内容之间的差异,可对比出哪些内容作了修改。 【工具箱选项】 集成工具箱的基本选项设置。基本分为<显示设置区><隐藏功能区><自动备份区><工作表设置区><功能... -
EXCEL集成工具箱完整版 (简体/繁体/英文多国语言版) V7.0
2010-08-13 10:31:10支持中英文显示与繁简体操作系统,支持Wista/Win7系统及XP界面、拥有20多款华丽的皮肤界面,支持Excel2007全面隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010... -
EXCEL集成工具箱V9.9 (2003-2010繁简体通用+珍藏版+280个功能)
2011-09-02 15:35:33║ 【条件背景】 【插入批注背景】 【读取批注内容】 【数字大写转小写】 【多个休闲动画】 ║ ║ 【条件背景选择】 【插入行数】 【监控单元格修改】 【筛选复制可见】 【关闭所有动画】 ║ ║ 【高级背景】 【注解... -
EXCEL集成工具箱V6.0
2010-09-11 01:44:37Excel集成工具箱6.0是利用VBA(Visual Basic for Applications)语言编写的增强应用型插件。包括160个菜单功能和100个左右 自定义函数,集160个工具于一身,但体积小于15MB。当安装集成工具箱后,如果您使用Excel ... -
中文版Excel.2007图表宝典 2/2
2012-04-06 19:01:3611.5.3 使用来自多个表单的数据/313 第12章 避免常见的制图错误/317 12.1 了解观众/317 12.2 图表精确度/318 12.2.1 根据上下文的数据绘图/319 12.2.2 夸大差异或者相似处/320 12.2.3 以百分比变化和实际变化的形式... -
EXCEL集成工具箱V8.0完整增强版(精简)
2010-09-23 16:58:17隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010版的朋友使用。 ===================================================================================... -
arcgis工具
2012-10-22 22:37:31Merge,把多个图斑合并到其中一个图斑上并继承它的属性,原图斑变化;Split用于间断线段,但得知道具体的长度,如果不知道那么长度或者没必要那么精确就直接用Eeitor工具栏的Split tool工具 ) 11. 连接外界属性... -
MySQL 5权威指南(第3版)--详细书签版
2013-02-05 15:44:00Kofler还是Definitive Guide to Excel VBA第2版的作者。 目录 封面 -23 封底 -22 扉页 -21 版权 -20 版权声明 -19 译者序 -18 前言 -16 目录 -11 第一部分 入门 1 第1章 什么是MySQL 2 1.1 什么是数据库 2 1.1.1... -
具才教务与成绩管理系统综合版 v19.3.rar
2019-07-12 21:51:19①对Excel进行深度开发,利用VBA语言编写程序,自设功能,自定义函数,自制菜单和按钮; ②系统含有二十多个子软件; ③根据学校的实际需要设置有关功能,是教育管理部门、学校领导、教务人员、班主任、教师的得力... -
Access 2000数据库系统设计(PDF)---031
2006-02-23 15:31:0425711.5 更新表中多个记录的值 25811.6 测试级联删除和更新 26111.6.1 创建测试表和建立关系 26111.6.2 测试级联删除 26211.6.3 测试级联更新 26211.7 疑难解答 26311.8 现实世界—操作查询之外的选择 26311.8.1 ... -
Access 2000数据库系统设计(PDF)---016
2006-02-23 15:31:0425711.5 更新表中多个记录的值 25811.6 测试级联删除和更新 26111.6.1 创建测试表和建立关系 26111.6.2 测试级联删除 26211.6.3 测试级联更新 26211.7 疑难解答 26311.8 现实世界—操作查询之外的选择 26311.8.1 ... -
Access 2000数据库系统设计(PDF)---011
2006-02-23 15:31:0425711.5 更新表中多个记录的值 25811.6 测试级联删除和更新 26111.6.1 创建测试表和建立关系 26111.6.2 测试级联删除 26211.6.3 测试级联更新 26211.7 疑难解答 26311.8 现实世界—操作查询之外的选择 26311.8.1 ... -
Access 2000数据库系统设计(PDF)---001
2006-02-23 15:31:041246.2.3 在多个字段上排序数据 1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和... -
Access2003中文版应用基础教程(高清中文PDF)
2011-05-20 15:24:555-3 多个数据表的窗体 5-3-1 建立含有子窗体的窗体 5-3-2 调整子窗体的大小与位置 5-3-3 设定窗体的数据编辑状态 5-3-4 设定控件的数据编辑属性 5-3-5 在窗体中建立查询对象 5-4 图表式的窗体 5-4-1 建立... -
Access2003中文版应用基础教程part3
2009-04-02 09:21:215-3 多个数据表的窗体 5-3-1 建立含有子窗体的窗体 5-3-2 调整子窗体的大小与位置 5-3-3 设定窗体的数据编辑状态 5-3-4 设定控件的数据编辑属性 5-3-5 在窗体中建立查询对象 5-4 图表式的窗体 5-4-1 建立... -
Visual Basic 2010 & .NET4 高级编程(第6版)-文字版
2013-03-21 08:54:5111.3.3 对一个对象使用多个表 455 11.4 从模型中生成数据库 457 11.5 小结 460 第12章 使用sql server 461 12.1 sql server compact 462 12.1.1 连接sql server compactedition数据库 463 12.1.2 ... -
Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf
2013-03-20 15:41:4211.3.2 对多个对象使用一个表 453 11.3.3 对一个对象使用多个表 455 11.4 从模型中生成数据库 457 11.5 小结 460 第12章 使用sql server 461 12.1 sql server compact 462 12.1.1 连接sql server ... -
Visual Basic 2008高级编程(中文PDF第5版) 45M版
2016-04-25 08:28:153.2 多接口................................................ 129 3.2.1 对象接口................................129 3.2.2 辅助接 U ................................130 3.3 抽象性.............................