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