在VBA中,变量(Variables)和常量(Constants)是编程时非常重要的概念。它们用于存储和引用数据,但是它们在用法和目的上有所不同。学习一下 (ง •_•)ง

一、变量(Variables)
1.1、定义

        变量用于存储程序中可以改变的数据。你可以根据需要改变变量的值,以适应程序运行时的不同情况。在VBA中声明变量时,你需要指定其数据类型(如整数、浮点数、字符串等),或者可以让VBA自动决定数据类型(使用通用类型(Variant))。

1.2、声明变量

        显式声明:使用Dim、Private和Public等关键字来明确声明变量的数据类型。

Dim [变量名] As [数据类型]
Dim myAge As Integer  
Dim myName As String

        隐式声明(不推荐):如果没有使用Option Explicit语句,VBA允许隐式声明变量,即不使用Dim等关键字。但是,这会导致难以跟踪的错误,因此建议使用Option Explicit语句来强制显式声明变量。

1.3、使用变量
myAge = 10  
myName = "Alice"

MsgBox "年龄: " & myAge & ", 姓名: " & myName
1.4、变量类型

        VBA支持多种变量类型,这些类型决定了变量可以存储的数据类型以及它们如何被存储和处理。以下是一些常见的VBA变量类型:

1.4.1、数值类型
类型说明范围
Integer整型,用于存储整数范围从 -32,768 到 32,767
Long长整型,用于存储更大的整数范围从 -2,147,483,648 到 2,147,483,647
Single单精度浮点型,用于存储单精度浮点数
Double双精度浮点型,用于存储双精度浮点数,提供更大的范围和精度
Currency货币型,用于存储货币值,精确到小数点后四位
Decimal(在某些VBA环境中可能需要额外支持),十进制数,用于需要高精度计算的场合
Byte字节型0 至 255
Short在某些VBA环境中可能作为Integer的别名存在,但在标准VBA中不直接支持
1.4.2、字符串类型
类型说明范围
String字符串类型,用于存储文本数据在VBA中,字符串可以包含任意长度的文本(尽管实际长度受限于可用内存)
1.4.3、日期和时间类型
类型说明范围
Date日期时间型,用于存储日期和时间值
1.4.4、布尔类型
类型说明范围
Boolean布尔型,用于存储逻辑值True 或 False
1.4.5、对象类型
类型说明范围
Object对象类型,用于存储任何对象引用
1.4.6、通用类型
类型说明范围
Variant变体类型,是VBA中最灵活的数据类型,可以存储任何类型的数据(包括对象)。使用Variant类型时,VBA会在运行时确定数据的具体类型。

注意:如果不指定类型,则默认为Variant类型。虽然Variant类型提供了灵活性,但在性能敏感的应用中,明确指定变量类型可以提高代码的执行效率。

1.4.7、变量命名规则

        在VBA中,命名变量是一个重要的步骤,它涉及到为存储数据的容器指定一个易于理解和识别的名称。好的命名习惯可以使代码更加清晰、易于维护和理解。以下是一些VBA变量命名的基本规则和最佳实践:

  1. 首字母必须以字母开头

  2. 不能使用VBA中保存的关键词作为变量名

  3. 不能包含空格、.(英文句号)、!(感叹号)、@、&、$、# 等字符

  4. 名称长度限制,虽然实际限制可能因VBA宿主应用程序而异,但通常建议名称不要过长,以便于记忆和输入

二、常量(Constants)
2.1、定义

        常量用于存储程序中不会改变的数据。它们通常在程序开始时定义,并在整个程序运行期间保持不变。使用常量可以使代码更清晰,并有助于防止意外的值修改。

2.2、声明常量

        使用Const关键字声明常量,并为其赋值。

Const [常量名] As [数据类型] = [值]
Const PI As Double = 3.14159265358979
2.3、使用常量
Dim radius As Double  
Dim area As Double  

radius = 5  
area = PI * radius ^ 2  

MsgBox "面积: " & area

总结
  • 变量:用于存储程序中可以改变的数据。
  • 常量:用于存储程序中不会改变的数据。

        通过合理使用变量和常量,你可以编写更清晰、更易于维护的VBA代码。记得总是使用Option Explicit语句来避免隐式声明变量可能带来的问题。

Excel VBA常数变量集合,部分示例如下: Public Const xlAll = &HFFFFEFF8 Public Const xlAutomatic = &HFFFFEFF7 Public Const xlBoth = 1 Public Const xlCenter = &HFFFFEFF4 Public Const xlChecker = 9 Public Const xlCircle = 8 Public Const xlCorner = 2 Public Const xlCrissCross = 16 Public Const xlCross = 4 Public Const xlDiamond = 2 Public Const xlDistributed = &HFFFFEFEB Public Const xlDoubleAccounting = 5 Public Const xlFixedValue = 1 Public Const xlFormats = &HFFFFEFE6 Public Const xlGray16 = 17 Public Const xlGray8 = 18 Public Const xlGrid = 15 Public Const xlHigh = &HFFFFEFE1 Public Const xlInside = 2 Public Const xlJustify = &HFFFFEFDE Public Const xlLightDown = 13 Public Const xlLightHorizontal = 11 Public Const xlLightUp = 14 Public Const xlLightVertical = 12 Public Const xlLow = &HFFFFEFDA Public Const xlManual = &HFFFFEFD9 Public Const xlMinusValues = 3 Public Const xlModule = &HFFFFEFD3 Public Const xlNextToAxis = 4 Public Const xlNone = &HFFFFEFD2 Public Const xlNotes = &HFFFFEFD0 Public Const xlOff = &HFFFFEFCE Public Const xlOn = 1 Public Const xlPercent = 2 Public Const xlPlus = 9 Public Const xlPlusValues = 2 Public Const xlSemiGray75 = 10 Public Const xlShowLabel = 4 Public Const xlShowLabelAndPercent = 5 Public Const xlShowPercent = 3 Public Const xlShowValue = 2 Public Const xlSimple = &HFFFFEFC6 Public Const xlSingle = 2 Public Const xlSingleAccounting = 4 Public Const xlSolid = 1 Public Const xlSquare = 1 Public Const xlStar = 5 Public Const xlStError = 4 Public Const xlToolbarButton = 2 Public Const xlTriangle = 3 Public Const xlGray25 = &HFFFFEFE4 Public Const xlGray50 = &HFFFFEFE3 Public Const xlGray75 = &HFFFFEFE2 Public Const xlBottom = &HFFFFEFF5 Public Const xlLeft = &HFFFFEFDD Public Const xlRight = &HFFFFEFC8 Public Const xlTop = &HFFFFEFC0 Public Const xl3DBar = &HFFFFEFFD Public Const xl3DSurface = &HFFFFEFF9 Public Const xlBar = 2 Public Const xlColumn = 3 Public Const xlCombination = &HFFFFEFF1 Public Const xlCustom = &HFFFFEFEE Public Const xlDefaultAutoFormat = -1 Public Const xlMaximum = 2 Public Const xlMinimum = 4 Public Const xlOpaque = 3 Public Const xlTransparent = 2 Public Const xlBidi = &HFFFFEC78 Public Const xlLatin = &HFFFFEC77 Public Const xlContext = &HFFFFEC76 Public Const xlLTR = &HFFFFEC75 Public Const xlRTL = &HFFFFEC74 Public Const xlFullScript = 1 Public Const xlPartialScript = 2 Public Const xlMixedScript = 3 Public Const xlMixedAuthorizedScript = 4 Public Const xlVisualCursor = 2 Public Const xlLogicalCursor = 1 Public Const xlSystem = 1 Public Const xlPartial = 3 Public Const xlHindiNumerals = 3 Public Const xlBidiCalendar = 3 Public Const xlGregorian = 2 Public Const xlComplete = 4 Public Const xlScale = 3 Public Const xlClosed = 3 Public Const xlColor1 = 7 Public Const xlColor2 = 8 Public Const xlColor3 = 9 Public Const xlConstants = 2 Public Const xlContents = 2 Public Const xlBelow = 1 Public Const xlCascade = 7 Public Const xlCenterAcrossSelection = 7 Public Const xlChart4 = 2 Public Const xlChartSeries = 17 Public Const xlChartShort = 6 Public Const xlChartTitles = 18 Public Const xlClassic1 = 1 Public Const xlClassic2 = 2 Public Const xlClassic3 = 3 Public Const xl3DEffects1 = 13 Public Const xl3DEffects2 = 14 Public Const xlAbove = 0 Public Const xlAccounting1 = 4 Public Const xlAccounting2 = 5 Public Const xlAccounting3 = 6 Public Const xlAccounting4 = 17 Public Const xlAdd = 2 Public Const xlDebugCodePane = 13 Public Const xlDesktop = 9 Public Const xlDirect = 1 Public Const xlDivide = 5 Public Const xlDoubleClosed = 5 Public Const xlDoubleOpen = 4 Public Const xlDoubleQuote = 1 Public Const xlEntireChart = 20 Public Const xlExcelMenus = 1 Public Const xlExtended = 3 Public Const xlFill = 5 Public Const xlFirst = 0 Public Const xlFloating = 5 Public Const xlFormula = 5 Public Const xlGeneral = 1 Public Const xlGridline = 22 Public Const xlIcons = 1 Public Const xlImmediatePane = 12 Public Const xlInteger = 2 Public Const xlLast = 1 Public Const xlLastCell = 11 Public Const xlList1 = 10 Public Const xlList2 = 11 Public Const xlList3 = 12 Public Const xlLocalFormat1 = 15 Public Const xlLocalFormat2 = 16 Public Const xlLong = 3 Public Const xlLotusHelp = 2 Public Const xlMacrosheetCell = 7 Public Const xlMixed = 2 Public Const xlMultiply = 4 Public Const xlNarrow = 1 Public Const xlNoDocuments = 3 Public Const xlOpen = 2 Public Const xlOutside = 3 Public Const xlReference = 4 Public Const xlSemiautomatic = 2 Public Const xlShort = 1 Public Const xlSingleQuote = 2 Public Const xlStrict = 2 Public Const xlSubtract = 3 Public Const xlTextBox = 16 Public Const xlTiled = 1 Public Const xlTitleBar = 8 Public Const xlToolbar = 1 Public Const xlVisible = 12 Public Const xlWatchPane = 11 Public Const xlWide = 3 Public Const xlWorkbookTab = 6 Public Const xlWorksheet4 = 1 Public Const xlWorksheetCell = 3 Public Const xlWorksheetShort = 5 Public Const xlAllExceptBorders = 6 Public Const xlLeftToRight = 2 Public Const xlTopToBottom = 1 Public Const xlVeryHidden = 2 Public Const xlDrawingObject = 14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-O-joker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值