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类似,只有几个特殊的
算数运算符
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.mzph.cn/web/73087.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kotlin 内联函数 inline

高阶函数实现的原理:函数类型其实是生成了一个对象 。 inline翻译成中文的意思就是内联,在kotlin里面inline被用来修饰函数,表明当前函数在编译时是以内嵌的形式进行编译的,从而减少了一层函数调用栈: inline fun fun…

PairRE: Knowledge Graph Embeddings via Paired Relation Vectors(论文笔记)

CCF等级:A 发布时间:2020年11月 25年3月24日交 目录 一、简介 二、原理 1.整体 2.关系模式 3.优化模型 三、实验性能 四、结论和未来工作 一、简介 将RotatE进行生级,RotatE只对头实体h进行计算,PairRE对头尾实体都进行…

从报错到成功:Mermaid 流程图语法避坑指南✨

🚀 从报错到成功:Mermaid 流程图语法避坑指南 🚀 🚨 问题背景 在开发文档或技术博客中,我们经常使用 Mermaid 流程图 来可视化代码逻辑。但最近我在尝试绘制一个 Java Stream 转换流程图时,遭遇了以下报错…

深入解析 Redis 实现分布式锁的最佳实践

前言 在分布式系统中,多个进程或线程可能会同时访问同一个共享资源,这就可能导致数据不一致的问题。为了保证数据的一致性,我们通常需要使用分布式锁。Redis 作为高性能的内存数据库,提供了一种简单高效的方式来实现分布式锁。本…

2025年03月10日人慧前端面试(外包滴滴)

目录 普通函数和箭头函数的区别loader 和 plugin 的区别webpack 怎么实现分包,为什么要分包webpack 的构建流程变量提升react 开发中遇到过什么问题什么是闭包vue 开发中遇到过什么问题vue中的 dep 和 watcher 的依赖收集是什么阶段什么是原型链react setState 是同…

Android10 系统截屏功能异常的处理

客户反馈的问题,设备上使用状态栏中“长截屏”功能,截屏失败且出现系统卡死问题。 在此记录该问题的处理 一现象: 设备A10上使用系统“长截屏”功能,出现截屏失败,系统死机。 二复现问题并分析 使用设备操作该功能&…

openvela新时代的国产开源RTOS系统

openvela 简介 openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家…

ENSP学习day9

ACL访问控制列表实验 ACL(Access Control List,访问控制列表)是一种用于控制用户或系统对资源(如文件、文件夹、网络等)访问权限的机制。通过ACL,系统管理员可以定义哪些用户或系统可以访问特定资源&#x…

JVM的组成--运行时数据区

JVM的组成 1、类加载器(ClassLoader) 类加载器负责将字节码文件从文件系统中加载到JVM中,分为:加载、链接(验证、准备、解析)、和初始化三个阶段 2、运行时数据区 运行时数据区包括:程序计数…

RAG(Retrieval-Augmented Generation)基建之PDF解析的“魔法”与“陷阱”

嘿,亲爱的算法工程师们!今天咱们聊一聊PDF解析的那些事儿,简直就像是在玩一场“信息捉迷藏”游戏!PDF文档就像是个调皮的小精灵,表面上看起来规规矩矩,但当你想要从它那里提取信息时,它就开始跟…

Python网络编程入门

一.Socket 简称套接字,是进程之间通信的一个工具,好比现实生活中的插座,所有的家用电器要想工作都是基于插座进行,进程之间要想进行网络通信需要Socket,Socket好比数据的搬运工~ 2个进程之间通过Socket进行相互通讯&a…

人工智能(AI)系统化学习路线

一、为什么需要系统化学习AI? 人工智能技术正在重塑各行各业,但许多初学者容易陷入误区: ❌ 盲目跟风:直接学习TensorFlow/PyTorch,忽视数学与算法基础。 ❌ 纸上谈兵:只看理论不写代码,无法解…

mac calDAV 日历交互

安装Bakal docker https://sabre.io/dav/building-a-caldav-client/ 在Bakal服务器上注册账户 http://localhost:8080/admin/?/users/calendars/user/1/ 在日历端登录账户: Server: http://127.0.0.1:8080/dav.php Server Path: /dav.php/principals/lion No e…

手机号登录与高并发思考

基础逻辑 一般来说这个验证码登录分为手机号、以及邮箱登录 手机号短信验证,以腾讯云SMS 服务为例: 这个操作无非对后端来说就是两个接口: 一个是获取验证码,这块后端生成6位数字expire_time 去推送到腾讯云sdk ,腾…

Python设计模式 - 适配器模式

定义 适配器模式(Adapter Pattern)是一种结构型设计模式,它用于将一个类的接口转换为客户端所期待的另一个接口。 注:在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者一组方法的集合。 结构 …

【前端工程化】

目录 前端工程户核心技术之模块化前端模块化的进化过程commonjs规范介绍commonjs规范示例commonjs模块打包 amd规范、cmd规范前端工程化关键技术之npmwebpack原理 前端工程户核心技术之模块化 前端模块化是一种标准,不是实现。commonjs是前端模块化的标准&#xff…

关于CNN,RNN,GAN,GNN,DQN,Transformer,LSTM,DBN你了解多少

以下是神经网络中常见的几种模型的简要介绍: 1. ​CNN (Convolutional Neural Network, 卷积神经网络) ​用途: 主要用于图像处理和计算机视觉任务。​特点: 通过卷积核提取局部特征,具有平移不变性,能够有效处理高维数据(如图像…

T113-i开发板的休眠与RTC定时唤醒指南

​​在嵌入式系统设计中,休眠与唤醒技术是优化电源管理、延长设备续航的关键。飞凌嵌入式基于全志T113-i处理器开发设计的OK113i-S开发板提供了两种休眠模式:freeze和mem,以满足不同应用场景下的功耗与恢复速度需求。本文将详细介绍如何让OK1…

SpringBoot项目实战(初级)

目录 一、数据库搭建 二、代码开发 1.pom.xml 2.thymeleaf模块处理的配置类 3.application配置文件 4.配置(在启动类中) 5.编写数据层 ②编写dao层 ③编写service层 接口 实现类 注意 补充(注入的3个注解) 1.AutoWir…

高性能网络SIG双月动态:加速 SMC eBPF 透明替换特性上游化进程,并与上游深度研讨新特性

01、整体进展 本次双月报总结了 SIG 在 1 月和 2 月的工作进展,工作聚焦在 ANCK CVE 和稳定性问题修复,以及上游 SMC eBPF 透明替换特性推进和多个话题讨论上。 本月关键进展: 1. 推进 SMC eBPF 透明替换特性上游化,更新至 V7&…