如果您曾经编程过任何宏,则可能熟悉如何使用Dim关键字定义变量。例如,您可以如下定义名称为MyVar的整数变量:

Dim MyVar As Integer

这非常简单,可以在您的代码中正常工作。为了在代码中节省几行,您可能会想每行定义多个变量:

Dim x, y, z As Integer

在BASIC语言的某些版本中,这将定义并初始化三个变量,每个变量均为整数。在VBA中,它似乎也可以正常运行,并且不会产生任何错误。但是,存在一个小问题-只有最后一个变量(z)实际上定义为整数。

您可以使用以下代码查看其工作原理:

Sub DimTest()

Dim x, y, z As Integer     Dim sTemp As String

sTemp = "x is type " & VarType(x) & vbCrLf     sTemp = sTemp & "y is type " & VarType(y) & vbCrLf     sTemp = sTemp & "z is type " & VarType(z)



MsgBox sTemp End Sub

当您运行宏时,消息框显示x和y的变量类型为0,这意味着变量是变量(未声明变量的默认数据类型)。仅最后一个消息框(对于z)

显示变量类型2,表示整数。

解决方案是确保每行声明一个变量,或者对每个变量使用完整的语法,如下所示:

Dim x As Integer, y As Integer, z As Integer

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3113)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007和更高版本)找到本技巧的版本: