Excel简单编程学习笔记

摘要:
多年来,我一直认为Excel是一种可以用来记录数据内容的表格工具。直到后来,开发同事们用Excel制作了一个漂亮的动态报告,它可以从数据库中提取数据,自动填写排版数据,自动计算和绘制,自动应用模板格式,并自动生成pdf格式的do。。。做Rs.关闭:结束记录集;Cn.Close:结束数据库连接;8.根据编程的操作规范,应进行调试,此处不再赘述;4、 使用演示

多少年来,我都一直认为Excel就是一个表格工具,用来记一记数据内容即可,直到后来开发同事用Excel做出了很花哨的动态报告,可以从数据库提取数据,自动填充排版数据,可以自动计算绘图,自动套用模版格式,自动生成pdf…  太可怕了。

我目前无法达到这样的水平,只能从最基本的数据提取开始。

一. 开启编程模式

1. Excel版本建议在2010以上,目前我使用的是2013;

2. 进入Excel后,依次点击打开左上角文件 → 选项,在选项中选择“自定义功能区”,将“开发工具”勾选,然后确定;

Excel简单编程学习笔记第1张 → Excel简单编程学习笔记第2张 → Excel简单编程学习笔记第3张

3. 回到excel主界面,可以看到开发工具选项卡已经显示,点击后找到最左侧的Visual Basic按钮,进入后,我们的所有编写代码将在里面完成;

Excel简单编程学习笔记第4张

二. 页面布局

1. 目前进行数据提取的学习实践,所以在excel主界面,我们需要设计一个基本布局界面,和我们平时使用excel表格,做表格样式一样;

2. 现在我参照sql中测试表的样式,在excel做相同页面布局;

Excel简单编程学习笔记第5张  Excel简单编程学习笔记第6张

三. 代码编写,功能实现

1. 增加触发按钮,如同SSMS中的执行按钮一样,excel界面上也需要增加一个执行按钮,“开发工具”→“插入”→“表单控件按钮”;

Excel简单编程学习笔记第7张

2. 按钮绑定代码宏,单纯的按钮是没有功能的,所以需要跟按钮绑定相关的代码宏,在此我提前新建了一个宏“数据提取”,选择后点击确定即可,同时给按钮重新命名一下;

Excel简单编程学习笔记第8张Excel简单编程学习笔记第9张

3. 正式编辑宏代码,接上图,选择宏后,点击编辑按钮,进入到了VB代码编辑页面,我们的功能属于“模块1”,之后就在右侧sub和end sub中编写代码;

Excel简单编程学习笔记第10张

4. 首先定义变量参数;

Excel简单编程学习笔记第11张

i:循环变量;

box1,box2:按钮条件变量,比如开始时间、结束时间;

cn:数据库连接,ADODB.Connection数据库连接控件;

rs:记录集,ADODB.Recordset记录集控件;

strCn:数据库连接串存储变量,下方填写了数据库连接;

strSQL:sql语句存储变量;

注意:在此步一定要注意勾选引用,否则部分功能控件无法使用。

工具 → 引用,将Microsoft ActiveX Data Objects 2.6 Library勾选,确定

Excel简单编程学习笔记第12张Excel简单编程学习笔记第13张

5. 定义box的类型

Excel简单编程学习笔记第14张

这里将用户输入的“日期”内容记录到box变量。

6. 连接数据库,编写sql语句,打开记录集记录查询到的数据;

Excel简单编程学习笔记第15张

cn.Open strCn:连接数据库;

rs.Open strSQL, cn:将sql语句查询出的数据记录到记录集;

i=2:起始行从第2行开始

7. 数据载入表格页面;

Excel简单编程学习笔记第16张

 Worksheets("Sheet1").Unprotect:解除选项页“Sheet1”的保护,可以写入数据;

Do While Not rs.EOF:循环读取数据集中的数据,到达尾行则停止循环;

Worksheets("Sheet1").Cells(i, 1).Value = rs("id"):将sql查询出的数据中的“id”字段,填入选项页“Sheet1”的第2行开始的第1列,其他内容类似,不做重复描述;

rs.MoveNext:记录开始下一条,与sql中的游标功能类似,逐行循环;

i = i + 1:循环递增1;

Loop:循环语法中的执行,类似于while … do中的do;

rs.Close:结束记录集;

cn.Close:结束数据库连接;

8. 按照编程的操作规范,应该要进行调试,这里就不做描述;

四. 使用演示

Excel简单编程学习笔记第17张

免责声明:文章转载自《Excel简单编程学习笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇plsql之导入数据乱码MIPI协议学习总结(一)【转】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

将 Excel 数据导入 SQL Server数据库

原文:https://docs.microsoft.com/zh-cn/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-2017#bulk-insert 适用于:SQL Server(所有支持的版本)  将 Excel 文件中的数据...

【转】在Eclipse下搭建Android开发环境教程

本文将全程演示Android开发环境的搭建过程,无需配置环境变量。所有软件都是写该文章时最新版本,希望大家喜欢。   一 相关下载 三 Eclipse配置   (1)Java JDK下载   1 安装android 开发插件   (2)Eclipse下载   2 配置Android SDK   (3)下载Android SDK   3 新...

PHPExcel内存泄漏问题

使用PHPExcel来生成 excel 文档是比较消耗内存的,有时候可能会需要通过一个循环来把大数据切分成若干个小的 excel 文档保存来避免内存耗尽。 然而 PHPExcel 存在 circular references 的情况(貌似在最新的 1.6.5 版本中仍然没有去解决这个问题),如果在一次 http 请求过程中反复多次构建 PHPExcel 及...

无限轮播图的制作

url:http://zjingwen.github.io/SetTimeOutGoBlog/webdemo/huanyouji/index.html (如果打开过慢,或者打不开,原因你懂得。) 一、思路 1、所有滑动效果的demo都是通过控制css里的left值,来控制滑动效果的。 2、需要两个块,一个div块,一个ui。div块的position是r...

抽象工厂(AbstractFactory)模式

  抽象工厂模式又称工具箱模式。其实抽象工厂模式可以简单的理解为一个工厂生成一个产品族的产品。   抽象工厂模式可以向客户端提供一个接口,使得客户端在不指定产品的具体类型的情况下,创建多个产品族中的产品对象。这也是抽象工厂模式的用意。   抽象工厂模式面对的是一个产品等级结构的系统设计。   抽象工厂模式和工厂模式最大的区别就是:工厂模式针对的是一个产品等...

vue v-for的数组改变导致页面不渲染解决方法

直接在数组里,改变数组来达到重新渲染页面的目的, 需要用push等数组方法, 或者$set(),或者给数组重新赋值,来改变数组引用地址 而是直接索引= <body> <div id="app"> <li v-for='item in students'> <span>{{...