Excel VBA变量和常量
发布时间:2023-02-18 15:48:34
在编写程序时,少不了要使用变量和常量,它们都是程序中很重要的元素,是组织程序的基础。
一个示例
下面是一个简单的VBA程序,用来计算半径为5的圆的面积。
Sub 示例2()
Const PI = 3.1415926
Dim r As Integer
Dim area As Double
r = 5
‘ 计算半径为5的圆的面积
area = PI * r * r
End Sub
其中,r和area就是变量,PI就是常量。
什么是变量
变量就是在计算机中根据其数据类型预先占用一个位置,在这个位置里可以放置相应的数据。换句话说,我们要在计算机中保存数据,就要有相应的空间,变量就是用来指明这些空间的。
我们可以将值存储在变量中,供程序使用,如下图1所示。
图1
注意,如果将另一个值放入已经存在值的变量中,那么原值就被新值所取代。
命名变量
在程序中,我们经常会使用多个变量。这样,就需要给变量起不同的名字,以区分这些变量,例如图1中的r就是一个变量的名字。
VBA规定了变量名的命名规则:
可以使用字母、数字和下划线,但必须以字母开头。
变量名最长不可以超过255个字符。
变量名不区分大小写。
变量名不能与VBA保留字同名,不能与VBA中的函数、语句和方法同名。
变量名中不能使用空格和句点。
这就说明,我们在命名变量名称时:
不能以数字或下划线开头。
不能在变量名中使用特殊类型的声明字符(#、$、%、&或!)。
不能在变量名中使用运算符(+、-、*、/、
下列字符也不能使用(?、=、”、;、`、@、^)。
在同一作用域内不能有相同的名字。
变量的数据类型
在前一篇中,我们过程序中的各种数据都有自已的数据类型(例如整型、字符串型、布尔型等),变量也有自已的数据类型。
在定义变量时,通常要说明变量要存储什么数据类型的值。也就是说,创建变量后,也决定了存储在该变量中的值的数据类型。
例如,上面示例中的:
Dim r As Integer
Dim area As Double
定义变量时,指定变量r存放Integer型的数据,而变量area存放Double型的数据。
说明:与很多编程语言不同,VBA比较特殊,它在定义变量时,并不一定需要声明存储在变量中的数据类型。VBA可以自动处理运用数据时涉及到的细节,这对程序编写来说的确很省事,但你会发现,这样的程序执行的速度会更慢,使用内存的效率也不高。如果我们在定义变量时严格指明该变量的数据类型,那么不仅能有效利用计算机空间,并且该变量在进行数据类型转换时,计算机会自动告诉你发生的问题。
声明变量
如上所述,示例中已经给出了声明变量的方法,即使用Dim语句来对变量进行声明(或定义)。声明变量的一般语法结构是:
图2
当然,还可以使用Public来声明一个公有变量。正如前面所说的,你可以省略掉As及之后的数据类型来声明变量,让VBA自已处理数据,但这并不会带来多少好处。
确切地说,当省略数据类型时,VBA会使用默认的数据类型Variant,在程序处理过程中,会根据所处理内容来改变变量的数据类型。
说明:VBA中“古老的”声明变量的方法
VBA也延续了BASIC定义变量数据类型的方法,即将一个字符加到变量名称后面来指定变量的数据类型,例如:
Dim r%
将变量r声明为整型。下表列出了有类型声明字符的VBA数据类型。
数据类型类型声明字符
Integer(整型)%
Long(长整型)&
Single(单精度浮点型)!
Double(双精度浮点型)#
Currency(货币型)@
String(字符串型)$
常量
在程序中,如果我们处理的某些数据从不会改变,那么我们可以将它们定义成常量,即决不会发生改变的数值或字符串。
声明常量
VBA规定使用Const语句来声明常量。例如本文开头示例中的:
Const PI = 3.1415926
定义了一个名为PI的常量,它的值是3.1415926,在程序中使用该常量,其值不会发生变化。我们没有指明PI的数据类型,VBA会根据它的值确定数据类型,PI的数据类型是Double型。当然,我们可以在声明的同时明确指定常量的数据类型:
Const PI As Double = 3.1415926
定义了常量之后,如果要在程序中修改它的值,例如给常量赋新值,将会产生错误。和变量一样,也可以在前面添加Public来声明一个公有常量。
说明:声明常量的好处
在程序中,将多处使用的值声明为常量,至少有两大好处:
如果要修改值,只需手动修改常量定义即可,不必到多个地方修改同一值,不仅繁锁,也容易遗漏。
给常量起一个好的名字,能够清楚地表明其意图,让代码更具可读性。
除了我们定义的常量外,VBA还提供了很多预定义的常量,这些常量不用明确声明就可使用。VBA预定义的常量通常以“xl”或“vb”开头。


猜你喜欢
- 最近有用户跟小编反映,自己使用U盘重装Win10系统之后,电脑出现蓝屏且提示错误代码0xc0000225,遇到这种情况要如何解决?下面就和小
- 在Win8系统中安装msi程序的时候就很有可能遇到2502/2503的错误代码,这一般是由于安装权限不足导致的,解决方法是以管理员运行的选项
- 相信越来越多的老师开始使用surface、互动大屏等支持触屏操作的电脑产品,今天就为大家推荐一款来自德国的免费屏幕书写工具——pointof
- 打印机是我们常见的外部输出设备,几乎每个公司都会安装它,但是有不少用户使用Win10安装打印机,之后要共享给WinXP用户使用,却发现提示“
- 在此简单介绍一下Excel中SUBTOTAL统计函数的用法及使用技巧方法1、在运用函数之前,我们肯定需要了解函数的基本语法含义,下面大家看一
- 有的 时分文档篇幅 过长, 需求打印 进去, 假如就这么 间接打印, 那末 获得的 成果 必定 欠好, 以至 恍惚不清,在WPS表格中 咱们
- PPT如何设置音乐循环播放?PPT是一个办公软件,用户可以使用其制作幻灯片使工作更加的有趣。PPT想要设置音乐循环播放,具体该怎么操作?下面
- 在使用计算机的过程中,有时我们需要暂时离开计算机,不希望其他人操作我们的计算机。此时,我们可以锁定计算机屏幕,这也可以保护我们的数据安全。W
- Excel中REPT函数的用法是按照给定的次数重复显示文本。我们本例使用REPT函数为成绩结果标明等级。详见下图所示:第一,选中G2单元格,
- 港版 iPhone XS Max 在内地如何保修?维修被拒绝怎么办?iPhone 作为一种电子消费品,本身其实非常脆弱,很容易发生意外,一旦
- 现在win11系统是现在非常火热的电脑操作系统,最近有用户在安装win11的时候,一直卡在开机界面,这时候我们可以尝试重启电脑,还是不行的话
- 我们经常使用的usb分为很多种类的,常见的2.0和3.0有什么区别呢?一般是速率上不同,然后外观也有一定的不同,以及USB的插口引脚有不同,
- Excel数据透视表是一种交互式报表,它可以快速分类汇总大量的数据,我们可以随时选择其中的页、行和列中的不同元素,并以快速查看源数据的不同统
- 最近有网友曝光一段Win10 Mobile RS2的16秒视频,从视频中我们可以看到Win10 RS2的通知铃声可能会迎来改动,从而更加确认
- Excel中frequency函数有什么作用?frequency函数主要是以一列垂直数组返回一组数据的频率分布,今天我们就来看看requen
- win10Xbox是win10系统自带的游戏平台,有很多时候因为系统或是别的软件的原因会让xbox闪退给大家带来了不少烦恼,那么下面就一起来
- 第一部分:substitute函数的用法介绍Substitute这个单词就是替换的意思。substitute函数是属于什么函数,如何使用呢?
- 红色警戒3是一款网游,红色警戒3有三条主线三个阵营,当然有三个不同的结局,很多红色警戒3的玩家应该不清楚红色警戒3对电脑配置有哪些要求,那么
- 正如标题所言可以通过本地安全策略—应用程序控制策略限制软件运行,具体的操作步骤如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助1、打开控制
- Epic这个游戏平台以每周都有一款免费游戏可以领取而出名,深受广大玩家的喜爱,但也有一些小伙伴发现自己不能领取免费的游戏,下面就和小编一起来