概述: 这时候让我想起英语语法,太枯燥了,不过没办法,已经想玩游戏,你得知道游戏规则,才能玩的更骚。。。。 1、 语法,编程的基础1.2、VBA中有哪些数据类型数据类型就是根据不同数据特性,定义不同类型,例如文本、日期、数值等 VBA里的数据类型有:字节型(Byte)、整数型(Integer), 长整数型(Long), 单精度浮点型(Single), 双精度浮点型(Double),货币型(Currency)等等 2、 存储数据的容器:常量和变量2.1、常量和变量常量就是不变的量,例如π,变量就是可以变。 2.2使用变量语法:Dim 变量名 As 数据类型 例如:Dim Str As String (Str就是装String类型的数据) Dim str As String*10 (表示最多装10个字节数据) 使用变量类型声明符(简写模式)如上图所示类型标识符 Dim Str$ (这里$字符串, 原来美元就是一个字符串丫) 声明多个变量(逗号隔开) Dim str As String, num As Integer, 相当于: Dim str As String Dim num As Integer 如果不指定变量类型 Dim Str (默认是Variant类型) 什么是Variant 所有数据类型统称,它表现所有数据类型,意味它很大(一般不要声明为Variant,你计算都不知道应该给你这个变量分配多少内存,杀鸡焉用牛刀一个道理) 强制声明所有变量 方法一:在模块的第一句手动输入代码:“Option Explicit”,它会强制检查。 方法二:在工具菜单栏中有设置选项,在每一次插入模块自动会添加 Option Explicit 还可以声明变量的作用域(也就是变量在哪里有效) 语法一: Public 变量名 As 数据类型 语法二:Private 变量 As 数据类型 语法三:Static 变量名As 数据类型 例如: Public str As String Private str As String Static str As String 变量的作用域 把数量存储到变量里 基本数据类型 语法 【Let】 变量名称 =数据 (【】表示可以省略) 简写为 变量名称=数据
给对象变量赋值,语法 Set 变量名称 = 对象(Set不能省略)
2.3 使用常量常量通常用来存储一些固定的不会被修改的值,如圆周率π,各种税率 (其实就是取有意义变量代替值) 所以只能赋值一次 语法: Const 变量名称 As 数据类型 = 数值 常量作用域类似变量,在过程中定义,过程内可用(本地常量),过程外定义,模块级常量, public + 过程外定义 公共常量 2.4、 使用数组什么是数组 数组类似你买一盒饼干,分成几个格,每一个的饼都是一样的。 数组特点:
语法: Dim 数组名(a to b) As 数据类型 Dim num (1 to 50) As String (表示50个字符串打包成的数组)。 给数组赋值 num(1) = '1号' (序号为1 放入一个字符串为'1号') num(2)='2号' (序号为2 放入一个字符串为 “2号”) 简写 Dim arr(49) As String 相对于 Dim arr(0 to 49) As String (注意是从0开始的) 例子:
以上是一维数组,就像排队买早餐 如果要在电影院确定你位置这时候需要二维数组,也就是第几排第几列 Dim 电影院 (1 to 10, 1 to 30) As String (表示电影院10行,每行30十个座位) 简写 Dim 电影院(9, 29) As String (因为从0开始,所以减一) 三维数组类似: 空间坐标, x,y,z轴 Dim 坐标 (1 to 10, 1 to 20, 1 to 2) As String (可以认为是x轴范围1到10, y轴范围为1到20, z轴坐标1到2所组成所有点) 当然还有四维数组、五维数组等等。一般用的最多的只有一、二数组。 声明动态数组 语法: Dim 数组名称 () (既然动态,表示刚开始时候不知道到底装多少元素,所以括号里什么也没有写,只知道是数组数据类型) 如果知道确定大小之后可以采用 ReDim (Re 在英语中就是再一次意思) 关键词进行定义大小 代码:
效果: 其他常用的创建数组的方式 方法一: 使用Array函数创建数组 语法:Array(元素1,元素2) (注意括号和逗号都是英文,记住一点就是设计涉及软件都是英文的状态的符号,这是也是刚开始最容易犯的错误,怎么也找不到错误的位置)
方法二: 使用Split 函数创建数组 (Split:就是分割意思) 语法: Split('字符串', '以字符作为分割线')
方法三: 通过Range对象直接创建数组 (Range是VBA用得最多,它代表单元格范围,可以单个,也可以是多个)
UBound和LBound函数 (计算索引值) 用到数组最关心的数组什么时候数组最后一个元素,所有这个用这个函数解决你疑虑 语法: UBound(arr) (upper取第一个字母,表示大,也就是数组最后一个元素的序号是多少) LBound(arr) (Lower 取第一个字母,表示小, 也就是数组第一个元素的序号是多少) 那么数组中有多少个元素呢? UBound(arr) - LBound(arr) + 1
对于多维数组求索引号
Join 函数,(这个函数和Split函数刚好相反,它将字符串连成一个字符串 ) 语法: Join (数组 , '连接符')
将数组写入单元格区域 批量写入数据,利用转置(也就是行变成列,列变成行)
东西太多了,见下一节 |
|
来自: 嘤其鸣矣xzebb4 > 《VBA》