简单易学-VBA数据分析
2023-04-13 17:30:38 4 举报
AI智能生成
简单易学-VBA数据分析,介绍概念以及案例,主要基于excel中vb语言处理
作者其他创作
大纲/内容
VBA简介
简介
VBA(Visual Basic for Applications),是一种自动化的语言,是微软办公(Microsoft Office)系列软件的内置变成语言, 目前EXCEL使用的比较普遍
特点
定义重复工作的程序,利用可视化的按钮等来方便操作
可视化编程环境:根据业务的需要,定制化操作页面
可以创建报表,减少实际报表设计中的操作
应用与优势<br>
应用
快速生成周期性固定格式统计报表
细致的管理工作
优势
具有美观简洁的操作页面
为客户提供问题的解决方案
操作界面人性化,方便用户的操作
具有较好的移植性,可以在不同版本的excel中使用
VBA规范及基础语法介绍
宏
宏是一系列可执行的VBA程序的集合,它可以帮助执行一项或者多项操作
录制宏
录制宏的功能很强大,很多Excel功能都可以通过录制宏来进行,但是不是万能的,仅仅是自己加速完成VBA代码的一个工具,用宏录制,然后修改代码;需要注意的是,各个Excel版本的VBA代码都有差异,不同版本的录制宏可能不能通用
VBA编辑器使用录制宏操作
1、在Excel中按下Alt+F11,就可以进入VBE界面在开发工具选项卡中,选择“录dao制宏”,设置宏名后,点击确定,就开始了宏的录制,大部分操作都会被录制成回宏代码
2、操作完成后,点击“停止录制”,就完成了宏代码的录制
3、用查看宏的方法,Alt+F11,在模块文件夹中就答可以看到录制的宏代码
VBA基础篇
变量
语法
Dim <<variable_name>> As <<variable_type>>
规则
变量名称必须使用一个字母作为第一个字符。
变量名称不能使用空格,句点(.),感叹号(!)或字符@,&,$,#。
变量名称的长度不能超过255个字符。
不能使用Visual Basic保留关键字作为变量名称
例子
常量
语法
Const <<constant_name>> As <<constant_type>> = <<constant_value>>
规则
常量名称必须使用一个字母作为第一个字符
<span style="font-size: inherit;">参见备注</span><br>
常量名称不能在名称中使用空格,句点(.),感叹号(!)或字符@,&,$,#<br>
常量名称的长度不能超过255个字符<br>
不能使用Visual Basic保留关键字作为常量名称<br>
例子<br>
子主题<br>
数组
语法
数组声明的方式与声明变量相同,只是数组变量的声明使用括号<br>Dim <<variable_name>> As <<variable_type>><br>
规则<br>
若数组大小被指定为5,但是当数组索引从零开始时,它可以保持6个值
数组索引不能是负数<br>
可以在一个数组变量中存储一个整数,字符串或字符<br>
数组声明<br>
定义<br>
Dim arr1()
Dim arr2(5)<br>
arr3= Array("apple","Orange")<br>
赋值<br>
Dim arr(5)
arr(0) = "10"<br>
arr(2) = 200<br>
arr(4) = #10/07/2019# '日期<br>
arr(5) = #12.45 PM# '时间<br>
多维数组
定义
Dim arr(2,3)
赋值
arr(0,0) = "Apple" <br> arr(0,1) = "Orange"<br>arr(1,0) = "banana"<br>
数组方法<br>
定义
返回指定数组的最小下标,数组的LBound的结果是零。<br>LBound(ArrayName[,dimension])<br>
例子<br>
MsgBox ("Line 1 : " & LBound(Array(5, 2, 3)))
ReDim语句
语法
用于声明动态数组变量并分配或重新分配存储空间<br>ReDim [Preserve] varname(subscripts) [, varname(subscripts)]<br>
例子
例子1
参见备注
例子2
参见备注
运算符
算数运算符<br>
+ : 两个操作数相加
- : 两个操作数相减<br>
* : 两个操作数相乘<br>
/ : 两个操作数相除<br>
% : 模运算符,整数除法后的余数<br>
^ : 指数运算符<br>
比较运算符<br>
= : 检查两个操作数的值是否相等。如果是,那么条件是真
<> : 检查两个操作数的值是否不相等。如果值不相等,则条件为真<br>
> : 检查左操作数的值是否大于右操作数的值。如果是,那么条件是真
< : 检查左操作数的值是否小于右操作数的值。如果是,那么条件是真
>= : 检查左操作数的值是否大于或等于右操作数的值。 如果是,那么条件是真
<= : 检查左操作数的值是否小于或等于右操作数的值。如果是,那么条件是真
逻辑运算符<br>
AND : 两个条件都为真,则表达式为真
OR : 如果两个条件中的任何一个为真,则条件为真
NOT : 用于反转其操作数的逻辑状态。 如果条件成立,那么逻辑非运算符结果是条件不成立
XOR : 如果表达式中只有一个表达式的值为True,则结果为True
单元格的格式方法
语法<br>
Range
Range("A1") '表示A1单元格<br>
Range("A1:A9") '表示A1-A9单元格<br>
[]<br>
[A1] '表示A1单元格
[A1:A9] '表示A1到A9单元格
Cells(第几行,第几列)
Cells(1,1) '表达第一行第一列的单元格
条件判断结构
语法
if then 语句
例子
参见备注
选择判断结构
语法
Select Case 语句
例子参见备注<br>
循环结构
语法
for next 语句
例子参见备注
for each 语句
例子参见备注
do while loop
例子参见备注
do while loop
例子参见备注
sub 与 function 的区别
区别
1、子过程不需要有返回一个值,而函数可能会或可能不会有返回一个值
2、子程序可以不用call关键字来调用<br>
3、子程序总是包含在Sub和End Sub语句中
过程调用函数<br>
例子参见备注
函数调用过程
例子参见备注
字符串的函数
语法<br>
函数返回一个字符串第一次出现在一个字符串,从左到右搜索。返回搜索到的字符索引位置<br>InStr([start,]string1,string2[,compare])<br>
例子参见备注
函数返回一个字符串在另一个字符串中的第一次出现。搜索从右到左<br>InStrRev(string1,string2[,start,[compare]])<br>
例子参见备注
日期函数
语法
返回当前的系统日期<br>date()<br>
例子参见备注
将有效的日期和时间表达式转换为类型日期<br>cdate(date)<br>
例子参见备注
返回两个指定的时间间隔之间的差值<br>DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])<br>
例子参见备注
VBA进阶篇
窗口与事件<br>
1、窗体俗称对话框,在可视化的面向对象的编程软件中都应该有。在VBA中也有,可以打开 excel->开发工具
2、点开Visual Basic就会进入到变成界面,然后就可以插入窗体
基础属性:外观,位置,字体<br>
行为属性和滚动条
3、常用事件<br>
Initialize
就是在初始化窗口时,要对窗口干的事情,比如给窗口属性赋值,给窗体内包含的控件赋初始值<br>
例子参见备注<br>
Click
点击窗体时,会干的事情,比如隐藏窗体等等
例子参见备注
Terminate<br>
关闭窗体是要干的事情,比如保存文件,关闭excel等
例子参见备注
Excel控件及Excel控件的初始化
常用的有标签
文本框(TextBox)<br>
例子参见备注
复合框(ComboBox)<br>
例子:名称赋值,是否选定 参见备注
例子:内容初始赋值 参见备注
例子:名称赋值,是否选定 参见备注
列表框(ListBox)<br>
例子:参见备注
复选框(CheckBox)<br>
选项按钮(OptionButton)<br>
命令按钮(CommandButton)<br>
Excel自身对象简介及Excel对象的引用<br>
常用对象
Excel本身(Application),比如打开,关闭,保存
代表整个 Microsoft Excel 应用程序
应用程序范围的设置和选项
ActiveCell和ActiveSheet
Application.ActiveCell 属性,返回range对象
Application.ActiveChart 属性,返回chart对象<br>
Application.ActiveWorkbook属性,返回workbook对象<br>
工作簿(WorkBook)<br>
workbook代表一个 Microsoft Excel 工作簿<br>workbook对应的还有一个workbooks对象,Workbook 对象是 Workbooks 集合的成员。Workbooks 集合包含 Microsoft Excel 中当前打开的所有 Workbook 对象。<br>
例子参见备注
工作页签(WorkSheet)<br>
Worksheet 对象是 Worksheets 集合的成员。Worksheets 集合包含某个工作簿中所有的 Worksheet 对象<br>Worksheet 对象也是 Sheets 集合的成员<br>
例子参见备注
单元格(Rang)
代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域
例子参见备注
例子参见备注
例子参见备注
Excel窗体、控件与excel数据(单元格)的关联<br>
1 如何关联已有的Excel文档和VBA
例子参见备注
2 如何关联控件和Excel数据
使用下面控件的controlsource,rowsource属性, BoundColumn 和 ControlSource 属性
例子参见备注
VBA数据分析案例
问题:如何统计每个汽车型号拥有哪些零件组成?excel中横向是汽车1,汽车2,纵向是轮胎1,轮胎2,轮胎3,轮胎4,方向盘1,方向盘2,座椅1,座椅2<br>
思路:
1 先横向遍历汽车,为每辆汽车建立一个Sheet,填入汽车型号<br>
再纵向遍历汽车零件,如果有零件,则在新Sheet里面填入零件名称和零件数量<br>
例子参见备注
总结以及回顾
VBA的基础的知识
1 常量与变量、<br>2 数组、<br>3 运算符、<br>4 条件判断结构、<br>5 循环语句、<br>6 判断语句、<br>7 单元格的格式方法、<br>8 sub 与 function 的区别、<br>9 字符串的函数、<br>10 日期函数<br>
VBA的进阶的知识<br>
1 窗体和事件、<br>2 Excel控件及Excel控件的初始化、<br>3 Excel自身对象简介及Excel对象的引用<br>
0 条评论
下一页