当前位置: 首页 > news >正文

VBA -- 学习Day2

入门
格式:

Sub 第一个宏程序()


End Sub

其中 第一个宏程序 : 宏程序名称;Sub:子程序;End Sub:子程序结尾

注:1. sub 宏程序名称,按下Enter => 自动补全() ,Sub自动大写,自动补全End Sub

       2. 光标放在待执行的宏程序内部再执行 就不用选 要执行的是哪个宏程序

       3. 单个模块可以编写多个宏程序

       4. 选中多行,设置注释块 => 即可设置多行注释

       5. &表示连接字符串;Range 表示单元格,通过.Value 获取单元格对应的数值
 

缩进:

Tab键 缩进

Shift+Tab键 减少缩进

立即窗口:

位置:视图 => 立即窗口

Debug.Print 打印到立即窗口
在立即窗口中 call 宏程序名称 或 直接写宏程序名称 都可以运行宏程序

使用变量:
Dim 声明变量 As 明确数据类型

日期&字符串:

VBA中对于日期类型要使用#包裹起来
                  字符串类型使用" "包裹

常见数据类型:

                      Integer(数据范围:-32768~32767)
                      Long(数据范围:-2147483648~2147483647)
                      Double
                      Date
                      Boolean
                      String

类型转换:

隐式类型转换:如果存储的数据的类型和我们设置的变量的数据类型不一致,首先会尝试隐式类型转换,(它会转换成设置的变量的数据类型),然后把转换之后的结果存储到内存空间中;转换不成功,就会报错

变量默认值:

整数、小数两个类型,变量默认值:0
字符串类型,变量默认值:""
布尔类型,变量默认值:False
日期类型,变量默认值:0:00:00


强制变量声明:

变量在使用时一定要先声明,然后才能使用
要想让未声明的变量报错,并且定位,我们可以在最上方写入Option Explicit

多变量声明:

Dim Name As String

Dim Age As Integer

Dim HireDate As Date

Dim Score As Double

=> Dim Name As String,Age As Integer,HireDate As Date,Score As Double

可变数据类型:

当我们不指定一个变量的数据类型的时候,那他就相当于可变数据类型

如果不写任何的数据类型,那就相当于默认会加上As Variant

变量作用域:

1. 在一个子程序里,可以调用另一个子程序 => call 子程序名称

2. 过程级变量:子程序内使用Dim声明的变量,只在所在的子程序中有效;超出子程序范围,变量所占据的内存空间就会释放

    模块级变量:子程序外使用Dim声明的变量,在模块内的所有的子程序中都有效;超出子程序范围,变量所占据的内存空间不会释放

    公共级变量:Dim 改 Public ,在子程序外使用Public生命的变量,对所有项目的所有模块中的子程序都有效

    静态变量:子程序内使用Static声明的变量,只在声明的子程序内有效;即使子程序执行完毕之后,变量占据的内存空间不会释放,特点是只在第一次赋值,后续调用时,保持之前的值;且一旦超出子程序范围,变量所占据的内存空间不会释放

常量:

不变的数值;用Const进行声明,声明时就要立刻进行赋值

变量定义方式:Dim PI As Double
                       PI = 3.1415926
常量定义方式:Const PI As Double = 3.1415926

注意:1. 如果想让当前模块所有子程序都能进行使用;就把这个常量放在子程序外部进行声明
               如果想让其他模块子程序也能使用,就使用Public

           2. 常量不允许修改值


VBA内置常量:
修改单元格的背景颜色
vbRed 255
vbBlue 16711680
vbGreen 65280
xlNone 无颜色
eg. Range("A5").Interior.Color = vbRed

换行

vbCrLf 、vbNewLine 换行
eg. Debug.Print "A5单元格的数据为:" & vbCrLf & Range("A5").Value

数学运算符:

= 赋值

+ - * /

\ 整除

Mod 取模:常使用Mod对2取模,获取余数,如果余数为0,则为偶数;否则,则为奇数

^ 乘幂 :用于计算一个数的平方

- 负号:eg. num1 = 2
                   num1 = -num1
                   Debug.Print num1
             => -2

比较运算符:

= 、<>不等于 、> 、< 、>=、 <=

字符串的模糊匹配:

like *:0或多个字符
      ?:一个字符

eg. Dim name As String
      name = “张三”
      Debug.Print name Like "张*"  => True

逻辑运算符:
And(与)全部成立才成立
Or (或)有一个成立,才成立
Not (非)取反

连接运算符:
&:可以连接任何类型数据
+:只能连接字符串(当左右两侧都是数字时,表示加号)

相关文章:

  • STM32系统定时器以及微秒延时函数分析
  • 在openEuler系统下编译安装Redis数据库指南
  • JavaSE核心知识点02面向对象编程02-02(封装、继承、多态)
  • 基于Partial Cross Entropy的弱监督语义分割实战指南
  • Python开发之os.path的常用操作
  • 2025年3月青少年机器人技术等级考试(二级)理论综合真题试卷
  • 【使用switch结构输出季节】2021-11-23
  • Wubuntu安装时创建分区失败解决方案
  • 贝叶斯定理
  • [python] 函数1-函数基础
  • uniapp index.html怎么改都不生效
  • Java 异常
  • 【PhysUnits】2 SI 量纲 实现解析(prefix.rs)
  • el-table合并单元
  • 数据结构(三)——栈和队列
  • uniapp-文件查找失败:‘@dcloudio/uni-ui/lib/uni-icons/uni-icons.vue‘
  • 记录一次华为魔改 fusionlnsight和ai问答的狗血故事
  • git 多个提交记录合并为一个
  • 为什么强调 RESTful 的无状态性?-优雅草卓伊凡
  • A2A Hello World搭建
  • 央行:货币与物价的关系受多重因素影响,提振物价的关键在于扩大有效需求
  • 人民财评:网售“婴儿高跟鞋”?不能让畸形审美侵蚀孩子身心
  • 2025中国品牌日上海践行活动启动,将建设品牌生态交互平台
  • 马克思主义理论研究教学名师系列访谈|董雅华:让学生感知马克思主义理论存在于社会生活中
  • 金融监管局:已设立74支私募股权投资基金,支持投资科技创新企业
  • 罗氏制药全新生物制药生产基地投资项目在沪启动:预计投资20.4亿元,2031年投产