写在最前
本节我们首先会了解VBA编程的数据类型,如果你是小白可以系统地学习一下,如果你已经用过VBA就当做查缺补漏。如果你没有任何编程经验的话,数据类型指的是我们对不同数据加的限制,和单元格格式中的分类类似,但是VBA能设置的数据类型更加丰富。
设置单元格格式
另外本节我们会介绍与数据类型密不可分的“常量和变量”,常量就是一个固定的值,变量可以更换内容重复使用,具体我们会举例说明。
VBA有哪些数据类型
大部分市面上关于VBA的教程会详尽地列出VBA的所有数据类型,个人觉得对新手不太友好,很多特殊的类型需要用到的时候百度就可以了。我们先简单分类说一下VBA有哪些数据类型。
1、数值型
Byte、Integer、Long、Single、Currency、Decimal
2、字符型
String(变长)、Varibale(定长)
3、特殊类型
Date(日期)、Object(对象变量)、Variant(变体型)
当你需要设置变量的时候,可以在下方这张VBA数据类型表中查找:
图来自《别怕,ExcelVBA其实很简单》
常量与变量
在编写VBA的时候,我们常常需要变量(常量是特殊的变量)来实现功能。变量的声明语句如下:
Dim 变量名 As 数据类型 "注意我们也可以不声明变量类型,此时默认该变量为Variant类型,该类型会占用较大空间,不是好的编程习惯
举个VBA例子说明:根据不同半径r计算圆的面积S。
Sub 根据半径r计算圆的面积S() "定义一个Sub过程 Const Pi = 3.14 "声明圆周率常量 Dim r As Integer Dim S As Double "定义半径和面积变量 r = Range("A2").Value "从A2单元格获取变量值 S = Pi * r ^ 2 "计算面积S Range("B2").Value = S "把面积S的值输出到B2单元格 End Sub
输出前的准备:
在A2单元格输入半径r
执行宏后输出结果:
执行宏
执行宏后的结果
其他一些关于变量的知识点
虽然我力求全面地介绍VBA的知识帮助各位从零基础到能用VBA解决各式各样的业务问题,但是有时候为了教材的通俗易通经常会放弃很多知识点。这里我们简单地介绍一些可能会用到的知识点。
1、给对象变量赋值时必须带上set
前面的求圆面积的例子中,我们对半径r的赋值如下:
r = Range("A2").Value
但是如果要给对象变量赋值,比如Range变量
Dim rng As Range Set.rng = WorkSheets("Sheet1").Range("A1") "令rng为A1单元格
2、变量是可以有作用域的
作用域的意思是指变量可以在哪个模块或者过程中调用。比如没有特殊声明的时候,一个Sub过程中的变量并不能影响另一个Sub过程。具体情况如下:
变量的作用域
写在最后
所有编程语言都包含各式各样的变量类型,选择合适的变量类型可以提高模型运行的效率和准确性。很遗憾我并不能也没有必要在这样短短一篇文章穷尽关于VBA变量和数据类型的所有知识,如果在实务中碰上无法解决的问题,请合理使用搜索引擎~
ExcelVBA从入门到精通——(1)实现第一个VBA程序
ExcelVBA从入门到精通——(2)理解对象及其属性和方法