VBA-Excel

VBA

一、数据类型与变量

  1. 常用数据类型:

    • Byte:字节型,0~255。
    • Integer:整数型,用于存储整数值,范围 -32768 到 32767。
    • Long:长整型,可存储更大范围的整数,范围 -2147483648 到 2147483647。
    • Double:双精度浮点数,用于表示带有小数的数值,精度较高。
    • String:字符串型,存储文本信息,用双引号括起来,如 "Hello World"。
    • Boolean:布尔型,只有 True 和 False 两个值,常用于条件判断。
    • Variant: 任意类型
  2. 变量声明:

    • 使用 Dim 关键字,如 Dim num As Integer,声明一个名为 num 的整数型变量。也可以在一行声明多个变量,如 Dim a As String, b As Double。

二、控制语句与运算符

  • 运算符与Java类似,只有几个特殊的
vba 复制代码
算数运算符
2^3 2的3次方

' 求商整数
5\2 = 2

'相除取余Mod
12 Mod 9 = 3


比较运算符
'比较两个对象是否相同
对象1 Is 对象2 

'Like 比较两个字符串是否匹配
' 通配符 
* 任意多个字符
? 任意单个字符
# 任意单个数组

[charlist] 位于charlist的任意一个字符
[!charlist]


文本运算符
+ 拼接字符串
& 合并字符串


逻辑运算符
And Or Not 

Xor 异或
Eqv 等价
Imp 蕴含

执行顺序

算数 比较 逻辑

  • If 语句
vba 复制代码
If 条件 Then
    如果是
Else
    否则
End If ` 结束
  • For循环
vba 复制代码
For i = start To end
    ` 循环部分
Next i
  • Select Case
vba 复制代码
Select Case 值 

    Case is 条件1
    Case is 条件2
	...
	Case Else ` 以上没有匹配

End Select
  • 遍历集合
vba 复制代码
For Each 变量 in 集合名称

Next 变量
  • DoWhile循环
vba 复制代码
Do While 循环条件

' 跳出循环
exit do


Loop
vba 复制代码
Do

Loop While 循环条件

三、子程序和函数

  1. 子程序(Sub)
    定义与作用:子程序是一段完成特定任务的代码块,不返回值。通常用于执行一系列操作。
vba 复制代码
Sub 子程序名称([参数列表])

End Sub
  1. 函数(Function)
    定义与作用:函数用于执行特定计算并返回一个值。可以在公式、条件判断等地方调用函数。
vba 复制代码
Function 函数名称([参数列表]) As 返回值类型
    函数名称 = 返回值
End Function
  1. 内置函数
函数名称 功能描述
IsNumeric 判断参数中数据是否为数字
IsDate 判断参数中数据是否为日期
IsEmpty 判断参数中数据是否为 Empty(空)
IsArray 判断参数是否为数组
IsError 判断参数是否为错误值
IsNull 判断参数是否不包含任何有效数据
IsObject 判断参数是否为一个对象
Int 返回小于或等于参数的第一个整数
Fix 返回参数的整数部分
Round 返回四舍五入的值
Sqr 返回数值的平方根
Abs 返回数值的绝对值
Rnd 生成 0 - 1 之间的随机数
  1. 文本函数
函数名称 功能描述
Len 求参数中数据包含的字符个数
Left、Right、Mid 分别用于截取最左侧、最右侧、从任意位置开始的指定数量的字符
Ltrim、Rtrim、Trim 分别用于去掉最左端、最右端、左右两端多余的空格
Ucase、Lcase 分别将英文字母转换为大写、小写
InStr 查找指定字符串在另一个字符串中的位置
Replace 将字符串中某个位置的部分字符串替换为新字符
Format 对参数指定的数据进行格式化
  1. 时间日期函数
函数名称 功能描述
Now、Date、Time 返回执行该函数时计算机的系统日期、时间数据
Timer 返回从凌晨 0 时到执行该函数时经过的秒数
DateSerial 返回参数指定年、月、日组成的日期数据
Year、Month、Day 返回参数指定日期中的年、月、日信息
TimeSerial 返回参数指定时、分、秒组成的时间数据
Hour、Minute、Second 返回参数指定时间中的时、分、秒信息
Format 将具有日期数据外观的字符串转为日期数据
DateValue 将具有时间数据外观的字符串转为时间数据
DateDiff 求两个日期的间隔
  1. 数据转换函数
函数名称 功能描述
Val 将参数指定的数据转为数值类型
CLng
CInt
CByte
CDbl 将参数指定的数据转为双精度浮点型
CStr 将参数指定的数据转为字符串型
CDate 将参数指定的数据转为日期型
CBool 将参数指定的数据转为布尔型
CVar 将参数指定的数据转为 Variant 型

四、Excel 对象模型操作

  1. 工作簿(Workbook)
  2. 工作表(Worksheet)
  • 新建一个工作表
vba 复制代码
workshets.add
  • 获取表的名称
vba 复制代码
Sheets.Name
  • 获取表的数量
vba 复制代码
Sheets.Count
  1. 单元格(Range)
  • 单元格赋值
    Range("A1").Value = "值"

连续选择的

"A1:B10" A1 -> B10 连续

不连续选择

"A1,B10" A1 和 B10

  • 根据行号列号引用单个单元格
vba 复制代码
sells(行,列)
' 行必须为数字,列可以是数字也可以是A
  • 选择行
vba 复制代码
rows(行号).select

' 也可以连续使用
rows(3:10).rows(1)  `表示第3到10的第一行
  • 列
vba 复制代码
columns
  • 选择单元格的相对单元格
vba 复制代码
offset
Range("A1").Offset(5,0)  `表示从A1开始向下移动5,向右移动1
' 负数表示反向
  • 获得行或列的最后单元格
vba 复制代码
End(xlUp)
`可选值:xlToLeft、xlToRight、xlUp、xlDown
  • 单元格格式
vba 复制代码
将单元格区域存储到变量中
Set
例如:set title = range("B2;G2")

合并单元格
title.Merge

水平居中
HorizontalAlignment = xlCenter

字体大小
Font.Size = 12

字体颜色
Font.ColorIndex = 1

字体加粗
Font.Bold = true

单元格内部
Range.Interior

单元格背景颜色
Interior.ColorIndex

边框
Borders.LineStyle = true
相关推荐
ms365copilot8 分钟前
Excel Copilot 一键定位修改的内容
excel·copilot
帆张芳显1 天前
前端表格公式能力新选择|智表 ZCell 公式引擎深度剖析
前端·excel·canva可画·excel插件
地图小课堂1 天前
Bigemap Pro 导入 Excel、CSV、TXT 点位表格教程
excel
我的愿望是成为富婆1 天前
2027校招准备:从Excel操作到数据分析,还缺业务、SQL与统计思维
sql·数据分析·excel
用户0332126663672 天前
Python 自动化办公:如何从零快速生成结构清晰的 Excel 报表
python·excel
千桐科技2 天前
qData 数据中台专业版功能解析:告别 Excel 与 SQL 拼凑,打通系统合并的可追踪数据链路
数据库·sql·excel·qdata
百事牛科技2 天前
从局部到整体:Excel限制功能的几种实用设置
windows·excel
ProcessOn官方账号2 天前
ProcessOn Office 插件上线:在 Word / Excel / PPT 里直接画流程图
word·excel·插件·office·processon
reasonsummer3 天前
【办公类-53-12】20261016(预测)Python模仿制作2026学年第二学期校历(excel+pdf,上下学期都包含)
pdf·excel
泡海椒4 天前
JQuick-Excel 自定义 SPI Provider:用 fullName 扩展 TRANSFORM 函数
驱动开发·excel