VBA-Excel

news/2025/3/26 9:31:41/

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类似,只有几个特殊的
算数运算符
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 语句
If 条件 Then如果是
Else否则
End If ` 结束
  • For循环
For i = start To end` 循环部分
Next i
  • Select Case
Select Case 值 Case is 条件1Case is 条件2...Case Else ` 以上没有匹配End Select
  • 遍历集合
For Each 变量 in 集合名称Next 变量
  • DoWhile循环
Do While 循环条件' 跳出循环
exit doLoop
DoLoop While 循环条件

三、子程序和函数

  1. 子程序(Sub)
    定义与作用:子程序是一段完成特定任务的代码块,不返回值。通常用于执行一系列操作。
Sub 子程序名称([参数列表])End Sub
  1. 函数(Function)
    定义与作用:函数用于执行特定计算并返回一个值。可以在公式、条件判断等地方调用函数。
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)
  • 新建一个工作表
workshets.add
  • 获取表的名称
Sheets.Name
  • 获取表的数量
Sheets.Count
  1. 单元格(Range)
  • 单元格赋值
    Range(“A1”).Value = “值”

连续选择的
“A1:B10” A1 -> B10 连续
不连续选择
“A1,B10” A1 和 B10

  • 根据行号列号引用单个单元格
sells(行,列)
' 行必须为数字,列可以是数字也可以是A
  • 选择行
rows(行号).select' 也可以连续使用
rows(3:10).rows(1)  `表示第3到10的第一行
columns
  • 选择单元格的相对单元格
offset
Range("A1").Offset(5,0)  `表示从A1开始向下移动5,向右移动1
' 负数表示反向
  • 获得行或列的最后单元格
End(xlUp)
`可选值:xlToLeft、xlToRight、xlUp、xlDown
  • 单元格格式
将单元格区域存储到变量中
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

在这里插入图片描述


http://www.ppmy.cn/news/1582573.html

相关文章

深入解析 C# 中的装饰器模式(Decorator Pattern)

引言 在软件设计中,我们经常面临这样的问题:如何在不修改现有代码的前提下,为对象添加新的功能?装饰器模式(Decorator Pattern)为解决这一问题提供了一个优雅的解决方案。它允许在运行时动态地为对象添加额…

创建自己的github.io

1、创建GitHub账号 GitHub地址:https://github.com/ 点击Sign up创建账号 如果已创建,点击Sign in登录 2、创建仓库 假设Owner为username,则Repository name为username.github.io说明: 1、Owner为用户名 2、Repository name为仓…

算法模型从入门到起飞系列——背包问题(探索最大价值的掘金之旅)

文章目录 前言一、背包问题溯源(动态规划)1.1 动态规划的概念1.2 动态规划的基本步骤1.3 动态规划的实际应用 二、背包问题2.1 背包问题衍生2.2 0-1背包2.2.1 0-1背包描述2.2.2 0-1背包图解2.2.3 0-1背包代码刨析 2.3 完全背包2.3.1 完全背包描述2.3.2 完…

windows+ollama+deepseek+openwebui快速实现本地部署Deepseek

文章目录 1. DeepSeek-R1全版本及硬件要求2. 安装Ollama2.1 官方下载(不推荐)2.2 国内镜像加速(推荐)2.3 验证安装 3. DeepSeek模型部署3.1 拉取模型3.2 测试运行 4. Open WebUI可视化部署4.1 安装包4.2 启动服务4.3 访问界面 5. 结论6. 实际参数参考6.1 我的电脑配置6.2 我的版…

网络空间安全专业发展历程及开设院校

一、专业发展历程 1. 早期探索阶段(1990年代末—2000年代初) (1)背景: 1990年代互联网进入中国,计算机病毒、黑客攻击等问题逐渐显现,社会对信息安全人才的需求开始萌芽。 (2&…

【C++进阶】函数:深度解析 C++ 函数的 12 大进化特性

目录 一、函数基础 1.1 函数定义与声明 1.2 函数调用 1.3 引用参数 二、函数重载:同名函数的「多态魔法」(C 特有) 2.1 基础实现 2.2 重载决议流程图 2.3 与 C 语言的本质区别 2.4 实战陷阱 三、默认参数:接口的「弹性设…

redis搭建一主一从+keepalived(虚拟IP)实现高可用

redis搭建一主一从keepalived(虚拟IP)实现高可用 前提 有两台机器:如 10.50.3.141 10.50.3.142,虚拟ip如:10.50.3.170 安装redis(两台机器执行): # 启用Remi仓库(CentOS 7) sudo yum install…

vue3配置代理实现axios请求本地接口返回PG库数据【前后端实操】

前端编写 安装 axios 如果当前未安装axios,可以执行如下指令安装 npm install axios配置代理 当前为基于Vite构建的项目,在 vite.config.ts 中配置代理,在defineConfig中新增server配置,主要关注两个点: 一、需要代…