VBA-2--变量Variables

 

 

Variables变量

本章教您如何在Excel VBA中声明、初始化和显示变量。让Excel VBA知道您正在使用一个变量称为声明一个变量。初始化仅仅意味着给变量分配一个开始(初始)值。

在工作表上放置一个命令按钮并在下面添加代码行。要执行代码行,请单击工作表上的命令按钮。

整数

整数变量用于存储整数

Dim x As Integer

x = 6

Range("A1").Value = x

结果:

 

说明:第一个代码行声明了一个名为x的整数类型的变量。接下来,我们用值6初始化x。最后,我们将x的值写入单元格A1。

String字符串

字符串变量用于存储文本。

代码:

Dim book As String

book = "bible"

Range("A1").Value = book

结果:

 

说明:第一个代码行声明了一个名为String的变量。接下来,我们用“bible”文本初始化书本。始终使用撇号初始化字符串变量。最后,我们将变量本的文本写到单元格A1。

Double双倍整数类型

Double类型的变量比Integer类型的变量更精确,还可以在逗号后存储数字。

Dim x As Double

x = 5.5

MsgBox "value is " & x

 

注:长变量的容量更大。始终使用正确类型的变量。因此,错误更容易找到,代码运行速度也更快。

Boolean布尔型

使用布尔变量保存值True或False。

代码:

Dim continue As Boolean

continue = True

If continue = True Then MsgBox "Boolean variables are cool"

结果:

 

 

显式选项Option Explicit

强烈建议在Excel VBA代码的开头使用Option Explicit。使用Option Explicit会强制声明所有变量。

例如,在工作表上放置一个命令按钮并添加以下代码行:

代码:

Dim myVar As Integer

myVar = 10

Range("A1").Value = mVar

显然,单元格A1不包含值10。那是因为我们不小心拼错了myVar。结果,Excel VBA将未声明的空变量mVar的值放入单元格A1。

当使用Option Explicit时,上面的代码行会生成一个错误,因为我们没有声明变量mVar。

 

1单击“确定”。然后单击Reset(Stop)停止调试器。

2更正mVar,使其读取myVar。

单击工作表上的命令按钮时的结果:

 

现在您知道了为什么应该在Excel VBA代码的开头始终使用Option Explicit。它避免错误地键入现有变量的名称。

幸运的是,您可以指示Excel VBA自动添加Option Explicit。

1在Visual Basic编辑器中,单击Tools,然后单击Options。

2检查需要变量声明。

 

注意:Option Explicit不会自动添加到现有的Excel文件中。如果你想使用它,只有你自己输入Option Explicit。

 

变量的作用域Variable Scope

 Excel VBA中变量的作用域决定了该变量的使用位置。在声明变量时确定其范围。有三个范围级别:过程级别、模块级别和公共模块级别。

在工作表上放置命令按钮并添加以下代码行:

 

1将这两个过程(过程是子过程或函数)放入一个模块中。在Visual Basic编辑器中,单击“插入,模块”。添加以下代码行

 

2 单击工作表上的命令按钮(调用两个sub)时的结果:

 

说明:变量txt具有作用域过程级别,因为它是在过程(Sub和End Sub之间)中声明的。因此,只能在sub1中使用此变量。变量txt不能在sub2中使用。

 

3如果希望某个变量对模块中的所有过程都可用,则表示希望该变量具有模块级作用域。您需要在General Declarations部分(模块顶部)声明变量。稍微调整代码如下:

 

4单击工作表上的命令按钮时的结果:

 

说明:变量txt现在可以在sub2中使用。模块级可与私有模块级互换使用。这是因为默认情况下,在General Declarations部分用Dim语句声明的变量的作用域是private。您还可以将变量范围设置为public。继续往下看。

 

5通过使用Public关键字,您的变量将可用于工作簿中所有模块中的所有过程。这称为公共模块级作用域。稍微调整代码如下:

 

说明:现在可以创建一个新模块,并将一个子模块sub3放入该模块中。使用与sub2相同的代码。将sub3添加到命令按钮代码中。当您单击工作表上的命令按钮时,您将看到三个消息框,显示“变量只能在该过程中使用”(请参阅可下载的Excel文件)。

 

变量寿命Life of Variables

有时您希望在过程结束时在Excel VBA中保留变量的值。您可以使用Static关键字来实现这一点。

1在工作表上放置命令按钮并添加以下代码行:

 

说明:Excel VBA会在过程结束时销毁变量。每次单击工作表上的命令按钮时,Excel VBA都会再次创建变量x,将值1添加到其中,并显示结果。

 

2现在用关键字Static替换关键字Dim。

 

 

结论:即使程序结束,静态变量仍保留其值。

注意:单击“重置(停止)”按钮或关闭工作簿时,静态变量将被销毁。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值