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 求参数中数据包含的字符个数
LeftRightMid 分别用于截取最左侧、最右侧、从任意位置开始的指定数量的字符
LtrimRtrimTrim 分别用于去掉最左端、最右端、左右两端多余的空格
UcaseLcase 分别将英文字母转换为大写、小写
InStr 查找指定字符串在另一个字符串中的位置
Replace 将字符串中某个位置的部分字符串替换为新字符
Format 对参数指定的数据进行格式化
  1. 时间日期函数
函数名称 功能描述
NowDateTime 返回执行该函数时计算机的系统日期、时间数据
Timer 返回从凌晨 0 时到执行该函数时经过的秒数
DateSerial 返回参数指定年、月、日组成的日期数据
YearMonthDay 返回参数指定日期中的年、月、日信息
TimeSerial 返回参数指定时、分、秒组成的时间数据
HourMinuteSecond 返回参数指定时间中的时、分、秒信息
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
相关推荐
熊明才14 分钟前
使用 Node.js 读取 Excel 文件并处理合并单元格
node.js·excel
洋茄子炒鸡蛋1 小时前
有没有一刻,突然平静地想离职(VUE中使用XLSX插件导入Excel文件,日期解析存在误差)
vue.js·excel
野生技术架构师8 小时前
Spring Boot 一个接口实现任意表的 Excel 导入导出
spring boot·excel·rxjava
inxunoffice9 小时前
导入 Excel 规则批量修改或删除 PDF 文档内容
pdf·excel
CodeCraft Studio9 小时前
Excel处理控件Aspose.Cells指南:如何在不使用 Microsoft Excel 的情况下解锁 Excel 工作表
python·microsoft·excel
cy41302610 小时前
python脚本处理excel文件
python·excel
maybe020917 小时前
前端表格数据导出Excel文件方法,列自适应宽度、增加合计、自定义文件名称
前端·javascript·excel·js·大前端
paradoxaaa_1 天前
VUE2导出el-table数据为excel并且按字段分多个sheet
javascript·vue.js·excel
敢敢变成了憨憨1 天前
excel 列单元格合并(合并列相同行)
excel
CodeCraft Studio1 天前
文档处理控件Aspose.Words 教程:.NET版中增强的 AI 文档摘要功能
人工智能·pdf·word·excel