是excel前身的数据处理软件
文件 -> 选项 -> 高级(下方) -> Lotus兼容性设置
勾选 转换lotus 1-2-3 公式
,其作用就是让算式直接运算,会自动在表达式前面加**=
** (等号)
视图 -> 新建窗口
新建窗口后可以在同级下选择全部重拍
,就可以用两个窗口对比
保存工作区
:可以把分开的视图的布样式保存
在2010后,excel支持分屏,就取消了这个功能
shift + 点击工作表
选择后进行插入,就可以插入对应数量的工作表
同时也可以一并运行其他操作(删除)
先选择列/单元格 -> shift + 列/单元格 的边框线 -> 拖拽到相应位置
双击列与列之间的分割线(可以选择多列后多列自动调整)
选定单元格 -> 双击任意一条他的四条边
选择单元格 -> 视图 -> 冻结窗格
可以让字段名或关键行列保持不动,便于对应茶看
选择单元格 -> 左键点住边框进行拖拽
复制填充 : 按住**ctrl
**
特殊格式填充 : 右键拖拽后选择格式
定义填充格式 :
文件 -> 选项 -> 高级(下方) -> 编辑自定义列表
可以用整张表刷整张表
如果双击
格式刷,可以多次刷格式,ESC键退出
ctrl + :
输入今天的日期 (YYYY/MM/DD)Alt + 回车
单元格内换行,通过这个来做斜线单元格ctrl + 回车
将选中的单元格用第一个输入的值填充 单元格格式并不会改变单元格本身的值,包括更改数据类型
日期也是数字,表示的是离**1900/01/01
的天数**
复制粘贴到陌生单元格,可能就会变成数值,只要更改相应单元格格式即可
时间也是数字,表示的是离**1900/01/01
的天数的数位数**
如:
0.5 <=> 12:00 0.25 <=> 6:00
可以在默认格式后面加上自己需要的文字,单元格隐藏
:::
,三个冒号代表隐藏单元格mmm
表示英文缩写mmmm
表示英文全称aaa
表示星期几aaaa
表示星期全称周
就可以表示为**周几
**0
表示一位数字 文本格式不会改变
正来说Excel超过15位就自动用科学计数法表示,但文本不会被改变
并且文本格式的数据不能直接改变他的类型,并且靠左对齐
如果是纯数字的文本,可以在单元格左边的**!
**中选择转换为数字
特殊用法
在空白单元格里输入1 -> 复制 -> 选中单元格 -> 选择性粘贴 -> 粘贴方式:承
数据 -> 分列
ctrl + F
开始 -> 编辑-> 查找与选择
替换选项卡中 -> 选项 -> 单元格匹配
勾选后,如果内容是全等于查找值才会被替换
可以在格式中下拉选项选择从单元格选择格式
,就能在单元格选择对应想要替换的格式
*
(星号)任意多个字符?
(问号)任意一个字符
~
(波浪线)让上方的匹配符号无效,就表示上方的匹配符号,加在匹配符号之前左上角名称框 -> 输入你想定位的行列
行用数字表示,列用字母表示,**:
**分割
如:
定位999到10000行:999:10000
定位A列的50行到G列的1000行:A50:G1000
开始 -> 编辑-> 查找与选择 -> 转到
转到就是定位,在里面可以设置定位条件
选中单元格 -> 插入批注
在 审阅 -> 批注
中可以批量管理批注
可以通过选项卡定位条件来定位批注
定位公式也在选项卡定位条件中
在选项卡定位条件中选择空值
如果多个单元格合并对应多个值,那么就无法用这个数据做数据透视表
解除合并:
选中合并后的单元格 -> 开始 -> 对齐方式 -> 合并后居中
填充解除合并后每行第一个的值:
选中解除合并后的单元格 -> 开始 -> 编辑 -> 查找与选择 -> 转到 -> 定位条件 -> 空值 -> 输入:= -> 按击方向键上输入 -> ctrl + 回车
选项卡定位条件 -> 对象
开始 -> 编辑 -> 查找与选择 -> 选择对象
不推荐只选中一列后进行排序,会让其他值不对应
开始 -> 编辑 -> 排序与筛选 -> 自定义排序
因为汉字是依靠拼音排序的,使用有很多时候会无法正常排序(如一,二,三,四,五)
无法正常排序的汉字必须要借助自定义序列
开始 -> 编辑 -> 排序与筛选 -> 自定义排序 -> 次序 -> 自定义序列
给需要排序的字段创建辅助列(从1开始填充) -> 给需要插入的行创建辅助列(从1.5开始填充) -> 根据辅助列进行排序
选中需要筛选的字段名 -> 开始 -> 编辑 -> 排序与筛选 -> 筛选
如果筛选完成后就只需要筛出来的数据,可以在选项卡定位条件
中选择可见单元格
筛选也可以筛选开头或结尾的字符,并且支持通配符
在高级筛选中筛选条件由表格组成,表格必须加字段名
如:我想要筛选年龄为25且身高为185的男生
筛选条件为:
年龄 | 身高 |
---|---|
25 | 185 |
将这一区域放入高级筛选的条件区域中
逻辑关系
同行为且,不同行为或
年龄 | 身高 |
---|---|
25 | 185 |
年龄 | 身高 |
---|---|
25 | |
185 |
数值条件
年龄 | 身高 |
---|---|
>20 | >185 |
逻辑值筛选
年零 | |
---|---|
=G5=A4>S8 |
|
数据 -> 排序和筛选 -> 高级
x 数据 -> 排序和筛选 -> 高级 -> 列表区域选择需要去重的列 -> 复制到选择想要输出的列 -> 勾选选择不重复的记录
先分类再汇总,是数据透视表的简化版本
分类汇总前必须先对要分类的列排序,作用是把一样的值放在一起
数据 -> 分级显示 -> 分类汇总
经过分类汇总的数据可以通过分类汇总
选项卡进行删除
先对多列排序,关键字分主次,由大范围到小范围
数据 -> 分级显示 -> 分类汇总 -> 先对主要关键字进行分类汇总 -> 过后再次点击分类汇总 -> 取消勾选替换当前分类汇总 -> 再对次级的关键字进行分类汇总 -> 以此类推
因为单元格的值合并后只保留一个
可以通过空的单元格合并后,选择性粘贴-> 格式
或直接把空单元格格式刷刷到需要合并的有值的单元格上
数据 -> 数据验证
写允许的条件
数据有效性满足引用
搭配函数COUNTIF()
在数据验证的允许
中选择序列
,来源必须用英文逗号分隔
因为数据有效性的原理是先输入值,然后再运算公式,如果公式为TRUE就允许写入,公式是可以自定义的,所以只需要给需要的记录设置为绝对是FALSE
的公式,那么就实现了保护记录
绝对是FALSE
的公式:
="中国" = "世界杯冠军"
=1>2
0
插入 -> 表格 -> 数据透视表
通过拖拽到行列进行数据透视
更改汇总方式
数据透视表字段 -> 点击值字段 -> 值字段设置
查看数据值
双击记录
更改行列标签频率
右键数据透视表行列标签 -> 组合
不需要自动的行标签求和
右键行标签 -> 取消勾选分类汇总
前提是只能是数值
右键数据透视表行列标签 -> 组合 -> 输入起始终止步长
组合的前提:
1 . 不能有空格
2 . 必须都是相同的数据类型
数据透视表工具 -> 数据透视表分析 -> 计算 -> 字段,项目和集 -> 计算字段
选中作表名列 -> 创建数据透视表 -> 把工作表名列放入筛选 -> 把工作表名列放入值 -> 数据透视表工具 -> 数据透视表分析 -> 数据透视表 -> 选项 -> 显示报表筛选页
如果不想要数据透视表,可以通过全选工作表后,直接delete或用其他行覆盖掉数据透视表的行
必须以等号**=
**开头
+ , - , * , / , % , &(连字符) , ^
在EXCEL中文本用双引号**"
**引起来
= ,> , < , >= , <= , <>
比较运算符的结果只会是**TRUE/FALSE
,分别表示1/0
**
特殊用法
先在单元格中写比较运算(如:=A1="本地") -> 因为TRUE表示是1,所以可以乘以加数从而达到目的
=(A1="本地")*加数 + 原单元格值
文本格式用函数无法聚合,但是用算术运算符可以求和,如果想让文本转换成数值可以通过**=文本格式数据+0
**来实现
快捷键:F4
H4
$H$4
所有函数的比较条件都必须以字符串的形式传递
排名
=RANK(排列数,排列区域)
求和
开始 -> 编辑 -> 自动求和
可以用来搭配条件定位来实现跳跃性的求和
=IF(条件,True值,False值)
函数可嵌套
也可以通过多个IF函数做算术运算
如:我要完成比较多的分级后返回每个级对应的值,就可以用if判断后如果不满足就等于**0/""
**,然后再把所有的加起来
=IF(A1="1级",1000,0) + IF(A1="2级",500,0) ....
函数ISERROR()
如果函数里的参数是错误的,返回TRUE,否则返回FALSE
常与IF搭配使用
AND(),OR(),NOT()
他们都是函数,不是关键字
COUNT(),只会给数字计数
COUNTIF(),将满足条件的记录计数
=COUNTIF(总区域 , 计数条件)
总区域:就相当于在那里数
计数条件:数什么,可以是单值
==COUNTIF(A3:G6 , ">=60")
==COUNTIF(A3:G6 , B6&"*")
开始 -> 样式 -> 条件格式 -> 新建规则
COUNTIFS(),将满足条件的记录计数,可以多条件
=COUNTIFS(总区域1 , 计数条件1,总区域2 , 计数条件2,....)
将符合条件的记录求和
=SUMIF(条件区域 , 条件 , 求和项)
如果条件区域也是求和项,那么求和项可以不写
函数容错性
SUMIF()的求和项
有很强的容错性(多方法)
求和项
=SUMIF(A3:G6 , ">=60" , F1)
求和项
=SUMIF(A3:G6 , ">=60" , F1)
容错性要点
条件区域必须与求和区域的开头行相同,就是条件区域从哪一行开头,求和区域也要从哪一行开头,包括所有的容错性用法
多条件思路
如果有多个条件去求和,那么可以用**&(连字符)
**将他们连起来成为辅助列,然后用辅助列进行判断求和
特殊用法
如果我发现我需要查找一个东西(是唯一的)对应一个值(前提是数值型),可以用SUMIF,虽然是求和,但是可以起查找作用
多条件求和,参数格式有较大区别
=SUMIFS(求和项 , 条件区域1,条件1 , 条件区域2,条件2 , ...)
查找
=Vlookup(查找值,查找区间,区间中查找值的对应列,匹配模式)
注意要点
查找区间
的最左侧列必须是 查找值
所在的列
区间中查找值的对应列
,顾名思义就是在查找区间中,从左侧往右侧数第几列
匹配模式
,FALSE/0代表精准匹配,TRUE/1代表模糊匹配。(一定要写)
一定要注意找区间的引用是否绝对
查找值如果不唯一,就只会查找到第一个
查找值
与查找区间
的左侧列的数据类型必须一样
如果不一样就需要转换(不是直接变更单元格的数据类型),用计算强转
数值 -> 文本: A1&""
文本 -> 数值: A1*1 / --A1
文本数值穿插: 分别强转后查找,搭配IF和ISNA
如果Vlookup找不到,就会返回**#N/A**,表示空值,判断空值用ISNA()
注:有些匹配可以用通配符解决,不一定是模糊匹配
模糊匹配只会匹配到小于等于自己的最大值
一般用于区间分割查找,因为一般区间只会写每间的起始值
相当于Vlookup的转置函数
=Hlookup(查找值,查找区间,区间中查找值的对应行,匹配模式)
查找区间
的最上侧行必须是 查找值
所在的行
区间中查找值的对应行
,顾名思义就是在查找区间中,从左侧往右侧数第几行
其他与Vlookup相同
比Vlookup自由度更高,只能模糊匹配
=Lookup(查找值,查找区间,返回值列)
可以直接指定返回值列,不用在查找区间返回
如何让Lookup精确匹配
先写条件:*0/(查找区间=查找值)1
1/0
表示后,如果做除数0**就会报错,就会剩下精确匹配的哪一个再用lookup
=LOOKUP(1,0/(查找区间=查找值)*1,返回值列)
找1是因为模糊匹配会最先返回**<=自己
**的值,就可以让他准确返回
Lookup多条件
TRUE/FALSE
相乘后做0的除数** 单查询
=MATCH(查找值,查找区间,匹配模式)
返回查找列中的第几行
取值
=INDEX(取值区间,取第几个)
MATCH
和INDEX
搭配使用可以满足Vlookup的短板
返回列号
返回行号
=TEXT(单元格值,格式)
返回将单元格值转换为对应格式的值
因为在EXCEL里面,所有的值被设置格式之后本值都不会改变,用text就可以改变并可以复制
在Excel里面,单位**1
**表示了整天,小数表示了时间
但是,所有的时间都是小数并且**<= 1
**
时间运算时,就必须把给出的多少**分钟/小时
转化成以整天为单位的小数**
x是时间的值
x/60 转为小时为单位
x/24 将小时单位转化为天做单位
加减即可
YEAR(日期)
取年份MONTH(日期)
取月份DAY(日期)
取天数DATE(年,月,日)
组合日期=DATE(YEAR(A1),MONTH(A1)+1,1) - 1
因为每个月的第一天都是**1
**,所以求当前日期的最后一天,就是将后一个月的第一天减一
=DAY(DATE(YEAR(A1),MONTH(A1)+1,1) - 1)
就是把最后一天取天数即可
属于隐藏函数,专求间隔日期
=DATEDIF(起始时间 , 终止时间 , 间隔单位)
起始时间必须小于终止时间
间隔单位用**"
**括起来
“Y” 年
"M" 月
“D” 日
“YM” 除去年份算剩下的月份
“MD” 除去月份算剩下的天数
“YD” 除去年份算剩下的天数
=WEEKNUM(日期,指定周的首天)
返回日期是所在年份的第几周
=WEEKDAY(日期,计算方法)
返回日期是所在周的第几天
开始 -> 样式 -> 条件格式
条件格式中可以查找重复值
条件格式先用大范围,再用小范围
切片器必须在**.xlsx
**文件使用
开始 -> 样式 -> 条件格式 -> 新建规则 -> "只包含以下内容的单元格设置格式" -> 将字体颜色改为白颜色
选中设置条件格式的列 -> 开始 -> 样式 -> 条件格式 -> 新建规则 -> "使用公式确定要设置格式的单元格" -> 公式列**只对选中时编辑单元格的对应行写公式**
汉字算1位字符
将单元格值从左开始取几位
=LEFT(单元格,位数)
将单元格值从右开始取几位
=RIGHT(单元格,位数)
(从左向右)将单元格值从中间位开始取几位
=MID(单元格,起始位数,取位数)
取位数包含起始位数
如果不确定取的位数可以指定一个很大的值来达到目的,但是不能缺少参数
提取身份证性别位
=RIGHT(LEFT(单元格,17),1)
寻找字符在字符串的第几位
=FIND(字符,单元格,从第几位开始)
如果没找到则返回**#VALUE!
**
求字符长度
=LEN(单元格)
求字节长度
=LENB(单元格)
=RIGHT(单元格, LENB(单元格)-LEN(单元格))
四舍五入
=ROUND(单元格,四舍五入位数)
向上进位,指定位数后,直接进位
=ROUNDUP(单元格,进位位数)
如:1,234
--> 1.24
向下舍位,指定位数后,直接舍位
=ROUNDDOWN(单元格,进位位数)
如:1,234
--> 1.23
直接取整,处理负值会有问题
=INT(单元格)
取余数
=MOD(被除数,除数)
=IF(MOD(单元格,1)>=0.5),INT(单元格)+0.5,INT(单元格))
=INT(单元格*2) / 2
等差
首先列出需要取得的行号,求出相差多少(d)
=ROW()*d - 多余值
使公式为要取得的行号
=ROW*3+COLUMN() - 多出部分
就是一段区域,这段区域可以做运算,运算后也会表示整段区域
所有的数组公式必须用ctrl + shift +回车
来运算
将引用字符串以参数传递给函数,就可以把单元格值引用出来
=INDIRECT(引用字符串)
先用字符串连接符(&)生成引用字符,然后再用INDIRECT函数
INDIRECT函数引用时,如果工作表名有特殊符号,就会引用出错,包括如果表名与引用字符串一样也会出错
解决方法
如:
1 月!g2 -> "'"&"1 月"&"'!g2"
前导知识
可以给工作区命名别名
公式 -> 定义的名称 -> 定义名称
制作
让图标或图片按照单元格改变
右键图表 -> 大小与属性 -> 属性 -> 选择"随单元格位置变换大小"
设置后可以将图表折叠
坐标轴选项 -> 勾选"逆序类别"
注:复合图必须设置那个数据在主或次坐标轴
选择数据轴:
图表工具 -> 格式 -> 当前所选内容
主次坐标轴设置:
选择图像上的数据轴 -> 右键 -> 设置绘图区格式
调整坐标轴大小可以调整图像的位置
可以把插入的形状直接粘贴到数据轴上
系列:一列或一行数据在图表中叫做一个系列
使用表单控件创建动态图
开发工具 -> 控件 -> 插入
Alt + Enter
条件格式中选择重复值
数据 -> 数据工具 -> 删除重复值
选择多个单元格 -> 开始 -> 编辑 -> 填充 -> 内容重拍
列宽必须足够才能合并
ctrl + h
替换
选择单元格 -> 打开替换 -> 将 .* 替换成 无(不写)
选择列 -> shift + 拖拽边框
alt + =(等号键)
先在旁边单元格写入数字/单位 -> 数据 -> 数据工具 -> 快速填充
ctrl + e
可以将一个单元格里面的值智能的提取出来。但首先要人工提取再ctrl+e,与拆分数字和单位同理
alt + 向下
生成已经输入过的去重后的下拉列表
=REPLACE(单元格,替换的起始位置,从起始位置替换多少个,新的字符串)
替换多少个包含起始位置
字符串匹配替换
=SUBSTITUTE(单元格,单元格中要被替换的字符串,新字符串,替换单元格中的第几个)
替换单元格中的第几个,省略的话就替换全部
查找一个字符串在另一个字符串的位置,区分大小写
=FIND(查找字符串,单元格.从第几个匹配)
查找一个字符串在另一个字符串的位置,不区分大小写
=SEARCH(查找字符串,单元格.从第几个匹配)
返回当前日期
=EOMONTH(单元格,取值参数)
测试单元格是否报错
=IFERROR(单元格,报错后返回的内容)
单元格偏移
=OFFSET(单元格,偏移行数(上加下减),偏移列数(左加右减),[偏移单元格后返回区域的高度],[偏移单元格后返回区域的宽度])
如果单元格是区域,则偏移整个区域
统计空值的个数
=COUNTBLANK(单元格)
将给定数组中,每个数组对应元素相乘,返回乘积之和
=SUMPRODUCT(数组1,数组2,数组2)
返回一个数字在一列中的排位
=RANK(单元格,区域)
将数字向下舍入到给出基数的最接近倍数
=FLOOR(单元格,基数)
返回给出区间中的随机数,区间是左闭右开
=RANDBETWEEN(bottom,top)
关键字区分大小写
启用所有的宏:
选项 -> 信任中心 -> 信任中心设置 -> 宏设置
进入VBA编辑界面
ALT+F11
开发工具 -> Visual Basic
右键工作表 -> 查看代码
保存代码
需要把代码与工作表一起保存,他的后缀名是**.xlsm
**
将在excel中的操作以代码的形式保存
开发工具 -> 代码 -> 录制宏
局限性:录制宏有很死的逻辑,所以说还是需要人为编写
相对引用
开发工具 -> 代码 -> 使用相对引用
使用方法:录制宏后打开使用相对引用
相对引用就是对于原单元格做相应的偏移
‘加注释内容
Sub 宏名()
语句
End Sub
[c1]
MsgBox 变量
,生成弹窗输出变量 = InputBox("说明字符串")
,输入并赋值给变量Timer
获取计算机内部时间Range("单元格引用")
Range("单元格引用").select
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NdZmmDCP-1669273206149)(变量的数据类型.png)]
dim 变量名 as 数据类型
定义变量是可以简写的
dim n%
定义多个变量用逗号分隔
dim n%,S&,x$
如果不定义变量,默认使用Variant,内存占用空间较大
For 变量 = 数值1 To 数值2 Step 步长
语句
Exit For '退出循环
Next
If 条件1 Then
语句1
Elseif 条件2 Then
语句2
Else
语句3
End If
``
单元格偏移
=OFFSET(单元格,偏移行数(上加下减),偏移列数(左加右减),[偏移单元格后返回区域的高度],[偏移单元格后返回区域的宽度])
如果单元格是区域,则偏移整个区域
统计空值的个数
=COUNTBLANK(单元格)
将给定数组中,每个数组对应元素相乘,返回乘积之和
=SUMPRODUCT(数组1,数组2,数组2)
返回一个数字在一列中的排位
=RANK(单元格,区域)
将数字向下舍入到给出基数的最接近倍数
=FLOOR(单元格,基数)
返回给出区间中的随机数,区间是左闭右开
=RANDBETWEEN(bottom,top)
关键字区分大小写
启用所有的宏:
选项 -> 信任中心 -> 信任中心设置 -> 宏设置
进入VBA编辑界面
ALT+F11
开发工具 -> Visual Basic
右键工作表 -> 查看代码
保存代码
需要把代码与工作表一起保存,他的后缀名是**.xlsm
**
将在excel中的操作以代码的形式保存
开发工具 -> 代码 -> 录制宏
局限性:录制宏有很死的逻辑,所以说还是需要人为编写
相对引用
开发工具 -> 代码 -> 使用相对引用
使用方法:录制宏后打开使用相对引用
相对引用就是对于原单元格做相应的偏移
‘加注释内容
Sub 宏名()
语句
End Sub
[c1]
MsgBox 变量
,生成弹窗输出变量 = InputBox("说明字符串")
,输入并赋值给变量Timer
获取计算机内部时间Range("单元格引用")
Range("单元格引用").select
dim 变量名 as 数据类型
定义变量是可以简写的
dim n%
定义多个变量用逗号分隔
dim n%,S&,x$
如果不定义变量,默认使用Variant,内存占用空间较大
For 变量 = 数值1 To 数值2 Step 步长
语句
Exit For '退出循环
Next
If 条件1 Then
语句1
Elseif 条件2 Then
语句2
Else
语句3
End If
Msgbox 字符串
变量 = Inputbox("说明字符串")
隶属于
With 对象
.属性/方法
其他对象.属性/方法
end With
Call 宏名
...
goto 常量
...
常量
语句
On Error Resume Next
如果出错继续执行下一行
一般使用的话需要加一个循环结束判断
单元格对象:Range("单元格1:单元格2")
工作表对象:Sheets
若要使用遍历需要把变量定义为工作表类型
Dim 变量 As Worksheet
工作表对象
注意:
Worksheets表示工作表对象,如果**Worksheets.count
只会返回工作表**的个数
sheets是全局的返回个数(如视图)
Select
选中工作表
Sheets.select
工作表名.Select
函数表示法:
Sheets("表名").Select
Sheets(1).Select 选中工作表中第一个工作表(不是旁边任务管理器的顺序)
Add
添加工作表
Sheets.Add [Before, After, Count, Type]
参数 := 值
参数详解
1 . Before, After
在某表前或后插入工作表
工作表名.Add Before:=工作表名
2 . Count
插入几个工作表
工作表名.Add Count:=工作表名
3 . Type
插入工作表的类型
Delete
删除表
Sheets.Delete
Excel.Application.DisplayAlerts = False/True
Copy
复制表
Sheets.Copy [Before, After]
Count
返回工作表个数,是只读的
sheets.count
Sheets.Add after := sheets(sheets.count)
总是在最后一张表插入,同时**sheets(sheets.count)
还可以表示最后一张表或者新插入的表**
Name
工作簿对象
路径(Filename)要写绝对路径+后缀名
Open
打开文件
Workbooks.Open [Filename]
ActiveWorkbook
当前活动的工作薄对象
每当open之后的工作薄就是这个对象
ActiveWorkbook.Save 保存
ActiveWorkbook.Close 关闭
ActiveWorkbook.sheets(1).... 使用
每次运行后都会报警告和文件刷新,这两个必须成对使用
Excel.Application.DisplayAlerts = False/True
Excel.Application.ScreenUpdating = False/True 关闭/打开工作表刷新
Add
添加工作簿
Workbooks.Add
创建工作簿后需要保存
ActiveWorkbook.SaveAs [Filename]
SaveAs
保存后会自动打开
备份保存
ThisWorkbook.SaveCopyAs [Filename]
ThisWorkbook == ActiveWorkbook
单元格对象
表示方法
[a1]
cells(行,列) '数值
range("单元格")
定义变量
dim 变量名 as range
Offset
偏移
range("单元格").offset(行偏移量,列偏移量)
End
以给出单元格为起点,到达最后一个被使用的单元格
range("单元格").End(xl..)
Resize
在指定单元格基础下,重设单元格区域
range("单元格").resize(行,列)
Copy
复制单元格
range("单元格").copy 目标单元格
Merge
合并选中的单元格
range("单元格").Merge
*AutoFilter
筛选
range("单元格").AutoFilter [Field Criteria1 Operator]
参数详解
取消筛选
range("单元格").AutoFilter
Find
查找
range("查找区间").find("查找内容")
返回就是返回单元格,使用select
就可以选中找到的单元格
但是如果没找到就会报错
Value
单元格的值
range('单元格').Value
Row,Column
单元格行号和列号
EntireRow/Column
单元格的整行/整列
最后一行的表示方法
sheet1.range("a65536").End(xlUp).Row
在Visual Basic双击工作表,就可以选择对象和事件
Application.EnableEvents = False/True
可以控制事件,让事件只执行一次
选区被改变
只要工作表被改变就会触发,慎用
在保存前执行,工作在Workbook上的事件
VBA函数与工作表函数不一样,但是工作表函数可以呗调用
WorksheetFuntion.工作表函数
若要在工作表上运行就需要先选择工作表:工作表.select
定义:
function 函数名(参数名 As 参数类型)
语句
End function
定义出来后可以在工作表使用,也可以在**Sub
**中使用
更改格式
format(更改内容,"格式")
判断是否是数字
将输入的转换为数值
VBA.String
字符在字符串中的第几个
VBA.String.InStr(单元格,"字符")
分隔字符串,返回数组,数组下标0开头。引用用**()
**小括号
VBA.String.Split(单元格,"字符")
VBA.DateTime
将给出的年月日,合并为日期型
VBA.DateTime.DateSerial(年,月,日)
相当于Excel的代码库,可以让EXCEL打开时加载代码库中的代码
需要在Thisworkbook
对象上面插入模块
加载宏要保存为.xlam/.xla
文件,路径不可更改
开发工具 -> EXCEL加载项
加载后就可以使用,一般用添加宏选项卡的方式来使用
文件 -> 更多 -> 选项 -> 自定义功能区 -> 宏
如果是函数,就可以直接使用了
文件操作一般分层使用:工作簿 -> 工作表 -> 单元格
查看是否存在这个文件,返回文件名,可使用通配符
DIR(PATH)
匹配机制
匹配第一个后,匹配时不给参数就可以匹配到第一个匹配路径的第二个值或者更多的值
DIR(PATH) '匹配到的第一个
DIR ‘匹配到的第二个
...... '以此类推
通配符
*.* 任意文件
将对象引用赋值给变量
Set 文件对象
文件对象操作
文件对象.close
文件对象:可以用Workbook.Open
打开
跨文件需要吧对象名写全,如**Thisworkbook.sheets(1)
**
可以提高代码运行速度
定义动态数组,0开头
dim 数组名()
可以给数组赋值一整个区域
数组使用区域
数组名 = range("A!1:I7")
值 引用
数组名(下标)
重新定义数组下标
redim 数组名(a to b)
不能再用dim
定义同一个数组
定义静态数组
dim 数组名(a to b)
可存储**b-a+1
**个数据,从a开头
可以通过数组名吧所有值输出,但是输出区域的维度必须跟数组的维度一样
引用:
表名.控件名.属性
mousemove
鼠标悬停事件GroupName
组名,同组名只能被选择一个,所以需要把同类型的按钮设同组名 显示方式:**ture
**表示独占
表单激活时触发
一般用于隐藏EXCEL主窗体
Application.Visible = True/False
表单退出时触发
一般用于关闭EXCEL
Application.Quit