精华内容
下载资源
问答
  • 展开全部可通过 “ = ” ...在VBA中对变量进行赋值可通过 “ = ” 符号或 “ Set ” 关键字进行。通过 “ = ” 符号对变量赋值的语法格式有以下几种。变量名=数据变量1=变量2 运算符 数据变量1=变量2 运算符 变量3...

    展开全部

    可通过 “ = ” 符号或 “ Set ” 关键字进行赋值。

    变量在使用时还需要对其62616964757a686964616fe58685e5aeb931333433623761进行赋值。在VBA中对变量进行赋值可通过 “ = ” 符号或 “ Set ” 关键字进行。通过 “ = ” 符号对变量赋值的语法格式有以下几种。

    变量名=数据

    变量1=变量2 运算符 数据

    变量1=变量2 运算符 变量3 … 运算符 变量n

    如果在定义变量时指定了变量的数据类型,则为变量所赋的值也必须是该数据类型的值。如果变量定义为Integer类型,而在赋值时却给了变量一个String类型的数据,则在编译运行的过程中将弹出错误弹框。

    扩展资料

    VBA二维数组包括静态和动态数组。

    静态数组是具有确定大小的数组,当事先知道数组的大小时使用静态数组。静态数组的大小是在数组的声明语句里确定的,例如,语句DimFruits(10)AsString声明了一个由10个成员组成的叫做Fruits的静态数组。

    但是,万一不肯定数组会包含多少个成员,如果过程由用户输入决定,每次程序执行时,用户提供的成员数可能会变化的。

    VBA会留出足够的内存来储存数组,如果声明一个需要的更多成员的数组的话,将浪费计算机资源。

    这个问题的解决方法是让数组变为动态的。动态数组是大小可以改变的数组。如果数组的大小每次都由程序运行而决定的话,就使用动态数组。

    展开全文
  • ExcelVBA 之Static 变量

    2020-06-03 17:23:12
    使用Dim语句声明的当地变量当过程结束时就会丢失值,当地变量的存活期是随着过程的运行的,并且它们在程序每次运行的时候可以被重新初始化。VB允许你通过改变声明方式延长当地变量的存活期。 用Static关键字声明的...

    静态变量(static)

     除了范围之外,变量还有存活期,变量的存活期决定了该变量能保存它的值有多久。一旦该工程打开,模块级别和工程级别的变量就会保留它们的值。然而,如果程序的逻辑需要,VB能够重新初始化这些变量。使用Dim语句声明的当地变量当过程结束时就会丢失值,当地变量的存活期是随着过程的运行的,并且它们在程序每次运行的时候可以被重新初始化。VB允许你通过改变声明方式延长当地变量的存活期。

    用Static关键字声明的变量是特殊的当地变量,静态变量在过程级别声明。和那些用关键字Dim声明的当地变量相反,静态变量在程序已经不在它们的过程里时仍然不会丢失它们的内容。例如,当一个带有静态变量的VBA过程调用另外一个过程时,在VB执行完被调用的过程语句后返回主调过程时,静态变量仍然保留它原来的值。过程CostOfPurchase示范静态变量allPurchase的使用:

    Sub CostOfPurchase()
             'declare variables
              Static allPurchase
              Dim newPurchase As String
              Dim purchCost As Single
              newPurchase = InputBox("Enter the cost of a purchase:")
              purchCost = CSng(newPurchase)
              allPurchase = allPurchase + purchCost
              'display results
              MsgBox "The cost of a new purchase is: " & newPurchase
              MsgBox "The running cost is: " & allPurchase
    End Sub
    

     上面的过程以一个名为allPurchase的静态变量和两个当地变量newPurchase和purchCost的声明开始。该过程中使用的InputBox函数显示一个对话框并且等着用户输入数值,一旦用户输入数值并且点击确定后,VB就会将该数值赋给变量newPurchase。因为InputBox函数的结果总是字符串,变量newOurchase被声明为字符串数据类型了。然而,你不能在数学计算中使用字符串,这就需要在下一指令中使用一个类型转换函数(CSng)来将字符串值转换为单精度浮点类型的数字。函数CSng只需要一个自变量——你要转换的数值。函数CSng转换的数字结果保存在变量purchCost上。

    技巧:类型转换函数
    在CSng上的任意地方按下F1,可以查看更多关于函数CSng的信息(也可以查看其它类型转换函数信息)下一行。

     

     

    展开全文
  • VBA静态变量与常量

    千次阅读 2009-10-19 22:38:00
    变量从创建为合适的对象与数据类型,到初始化,再通过运算符计算或执行语句修改,来完成整个互交的过程。 声明变量的关键词是Dim,其语法是 Dim [WithEvents] varname[([subscripts])] [As [New] type] [, ...

    VBA代码中包含变量、运算符和语句。变量在代码中起到互交与连接的作用。变量从创建为合适的对象与数据类型,到初始化,再通过运算符计算或执行语句修改,来完成整个互交的过程。

      声明变量的关键词是Dim,其语法是

      Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] varname[([subscripts])] [As [New] type]] . . .

      Dim 语句的语法包含下面部分:

      部分 描述

      WithEvents 可选的。关键字,说明 varname 是一个用来响应由 ActiveX 对象触发的事件的对象变量。只有在类模块中才是合法的。使用 WithEvents,可以声明任意个所需的单变量,但不能使用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。

      varname 必需的。变量的名称;遵循标准的变量命名约定。

      subscripts 可选的。数组变量的维数;最多可以定义 60 维的多维数组。subscripts 参数使用下面的语法:

       [lower To] upper [, [lower To] upper] . . .

      如果不显式指定 lower,则数组的下界由 Option Base 语句控制。如果没有使用 Option Base 语句,则下界为 0。

      New 可选的。可隐式地创建对象的关键字。如果使用 New 来声明对象变量,则在第一次引用该变量时将新建该对象的实例,因此不必使用 Set 语句来给该对象引用赋值。New 关键字不能声明任何内部数据类型的变量,以及从属对象的实例,也不能与 WithEvents 一起使用。

      type 可选的。变量的数据类型;可以是 Byte、 Boolean 、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String * length (对定长的字符串)、Object、Variant、用户定义类型、或对象类型。所声明的每个变量都要一个单独的 As type 子句。

    而在声明变量或创建变量的同时,最好先考虑好变量用什么数据类型,下面 表格显示所支持的数据类型,以及存储空间大小与范围。

      数据类型 存储空间大小 范围

      Byte 1 个字节 0 到 255

      Boolean 2 个字节 True 或 False

      Integer 2 个字节 -32,768 到 32,767

      Long

      (长整型) 4 个字节 -2,147,483,648 到 2,147,483,647

      Single

      (单精度浮点型) 4 个字节 负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38

      Double

      (双精度浮点型) 8 个字节 负数时从 -1.79769313486231E308 到

      -4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308

      Currency

      (变比整型) 8 个字节 从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807

      Decimal 14 个字节 没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001

      Date 8 个字节 100 年 1 月 1 日 到 9999 年 12 月 31 日

      Object 4 个字节 任何 Object 引用

      String

      (变长) 10 字节加字符串长度 0 到大约 20 亿

      String

      (定长) 字符串长度 1 到大约 65,400

      Variant

      (数字) 16 个字节 任何数字值,最大可达 Double 的范围

      Variant

      (字符) 22 个字节加字符串长度 与变长 String 有相同的范围

      用户自定义

      (利用 Type) 所有元素所需数目 每个元素的范围与它本身的数据类型的范围相同。

      其中的Variant是个很特殊的数据类型,它能表示除固定长度之外的所有值,并可以通过VarType来返回其数据子类型。其语法如下:

    VarType(varname)

      必要的 varname 参数是一个 Variant,包含用户定义类型变量之外的任何变量。

      下面这个表表示VarType返回的值的意义:

      常数 值 描述

      vbEmpty 0 Empty(未初始化)

      vbNull 1 Null(无有效数据)

      vbInteger 2 整数

      vbLong 3 长整数

      vbSingle 4 单精度浮点数

      vbDouble 5 双精度浮点数

      vbCurrency 6 货币值

      vbDate 7 日期

      vbString 8 字符串

      vbObject 9 对象

      vbError 10 错误值

      vbBoolean 11 Boolean 值

      vbVariant 12 Variant(只与变体中的数组一起使用)

      vbDataObject 13 数据访问对象

      vbDecimal 14 十进制值

      vbByte 17 位值

      vbUserDefinedType 36 包含用户定义类型的变量

      vbArray 8192 数组

      变量因声明的位置与使用Public或Private关键字,其有效范围可能为3种:过程范围、模块范围与全局范围。当变量放在模块头部,并使用Public代替Dim时,这个变量就是全局变量;而如果是用Dim或者用Private代替Dim时,这个变量是模块级变量;而当变量在过程中声明就是过程变量了。

      通常的过程变量在过程结束后值是不保存,但如果子程序使用Static语句,或者用Static声明的过程变量是例外的,下面用两个实例说明一下。

      Static Sub ExcelbaSub2()

      Dim X As Integer

      MsgBox "X = " & X

      X = X + 1

      End Sub

      Sub ExcelbaSub3()

      Static Y As Integer

      MsgBox "Y = " & Y

      Y = Y + 1

      End Sub

      运行上面的过程,你就比较容易理解Static的用途了。

      除了变量,我们还经常用到一些常量,包含系统定义与自定义的常量。常量与变量有很多相似之处,但常量的值是保持不变的,如果代码中常常出现一个数值,最好的方法就是定义成常量,这样既使代码易于编写,也让代码容易阅读。定义常量的关键词是Const,其语法是:

     

      语法

      [Public | Private] Const constname [As type] = expression

    技术支持网站:vba中国http://www.vbacn.com
    技术支持论坛 vba中国论坛http://bbs.vbacn.com

    展开全文
  • VBA-2--变量Variables

    2020-01-13 19:47:11
    本章教您如何在Excel VBA中声明、初始化和显示变量。让Excel VBA知道您正在使用一个变量称为声明一个变量初始化仅仅意味着给变量分配一个开始(初始)值。 在工作表上放置一个命令按钮并在下面添加代码行。要执行...

     

     

    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。

     

     

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

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

    展开全文
  • 一个SUB内变量尽量要独立,因为所有变量都在sub生效 1、全局变量在整个工程文件内都有效;...4、全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。 5、静态局部变量...
  • VBA静态变量与常量(转)[@more@]  VBA代码中包含变量、运算符和语句。变量在代码中起到互交与连接...变量从创建为合适的对象与数据类型,到初始化,再通过运算符计算或执行语句修改,来完成整个互交的过程。  声...
  • 移除 unitest/base 目录,单元测试代码直接放到 unitest 目录下.test 目录下支持子目录.fastfast.cc 中静态变量的定义放到函数中,初始化更安全.fast::dtoa 弃用基于 LruMap 的实现,换用 Milo...
  • 初始化ClassVector新变量,并将标准数组(String,Variant,Double等)转换为此类,如下所示。 Dim vector As New ClassVector Dim arr As Variant arr = Array( 1 , 2 , 3 ) vector.Convert(arr) 现在,您可以...
  • vba collection用法

    2020-06-16 23:57:01
    3 ’ Set s = New Collection '初始化集合对象s (否则无法使用) 4 5 Dim s As New Collection '推荐这句代码,直接初始化,可以不用再Set了 6 7 '集合s中添加元素的方法 8 For i = 1 To 10 9 s.Add i '对于集合s,用...
  • VBA初探

    2011-08-12 10:49:08
    声明一个变量之后,没初始化之前赋值会报莫名其妙的错,应该先Set(理解的不知道对不对),但是integer之类就不需要用set   另外range,area,cell,row之类太灵活了,偶尔还有几个属性又不是一样的   最坑爹的是用了...
  • VBA Collection用法总结

    2019-10-07 03:38:47
    1 Sub test() ... 3 ' Set s = New Collection '初始化集合对象s (否则无法使用) 4 5 Dim s As New Collection '推荐这句代码,直接初始化,可以不用再Set了 6 7 '集合s中添加元素的方法 ...
  • VBA 中Dim含义

    千次阅读 2018-06-07 17:17:00
    楼主是个初学者,在应用vba时遇到了dim方面的问题,查了很多资料后想把关于dim的这点儿知识简单...可以看到integer1被初始化为了空值,integer2被初始化为0 楼主想当然的认为dim的同类型多变量声明方式为dim 变...
  • 常用语变量初始化等设置。 Private Sub UserForm_Initialize() MsgBox Me.Caption End Sub 255、 窗体关闭前的事件 Cancel:值为>0的值时禁止关闭动作的发生 CloseMode:关闭的模式,0点击关闭按钮,1是使用...
  • Excel_VBA教程

    2014-09-22 11:36:34
    29.编写过程来初始化窗体 211 30.编写过程填充列表框控件 213 31.编写过程控制选项按钮 213 32.编写过程同步文字框和旋转按钮 214 33.编写过程关闭用户窗体 214 34.转移窗体数据到工作表 215 35.使用INFO SURVEY应用...
  • VBA日期转换字符串 参考 Sub test() ... vbEmpty0Empty(未初始化)  vbNull1Null(无有效数据)  vbInteger2整数  vbLong3长整数  vbSingle4单精度浮点数  vbDouble5双精度浮点数  vbCurrency6货币值
  • access vba函数

    千次阅读 2006-09-25 11:09:00
    语法Abs(number) 必要的 number 参数是任何有效的数值表达式,如果 number 包含 Null,则返回 Null,如果 number 是未初始化变量,则返回 0。说明一个数的绝对值是将正负号去掉以后的值。例如,ABS(-1) 和 ABS(1)...
  • VBA中关于dim的简单总结

    万次阅读 2017-08-31 16:25:21
    楼主是个初学者,在应用vba时遇到了dim方面的问题,查了很多资料后想把关于dim的这点儿知识...可以看到integer1被初始化为了空值,integer2被初始化为0   楼主想当然的认为dim的同类型多变量声明方式为 dim 变...
  • VBA学习资料分享-4

    2019-05-16 16:50:00
    工作中经常要从数据库把数据跑出来放到EXCEL上,...引用法——引用Microsoft ActiveX Data Objects x.x Library,Microsoft ActiveX Data Objects Recordset x.x Library,声明的同时使用New实现了初始实例 Di...
  • 返回 Boolean 值,指出变量是否已经初始化。 【语法】 IsEmpty(expression) 必要的 expression 参数是一个 Variant,包含一个数值或字符串表达式(实际上还可以是单元格)。但是,因为 IsEmpty 被用来确定个别...
  • Excel VBA函数参考手册

    2018-02-06 16:35:41
    必要的 number 参数是任何有效的数值表达式,如果 number 包含 Null,则返回 Null,如果 number 是未初始化变量,则返回 0。 说明 一个数的绝对值是将正负号去掉以后的值。例如,ABS(-1) 和 ABS(1) 都返回 1。 Abs...
  • 如果它是未初始化变量,则返回 0。 数字的绝对值是其无符号大小。 例如, ABS(-1)和ABS(1)都返回。 1 示例 此示例使用 Abs 函数计算数字的绝对值。 Dim MyNumber MyNumber = Abs(50.3) ' Returns 50.3. My...
  • VBA中集合collection方法的基础知识

    万次阅读 2015-12-18 18:17:42
    刚刚有新手在问 Collection是什么意思?…… 于是有了下面的代码介绍: ...' Dim s As Collection '定义s...' Set s = New Collection '初始化集合对象s (否则无法使用)  Dim s As New Collection '推
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    第四节变量与常量............................................................................................................................1 第五节数组...................................................
  • 答:请看下方代码和运行效果:'A 等于 Empty, 因为尚未初始化的“不定型变量”都等于 Empty。'但如果检测 A = "" 或 A = 0, 也都可以得到 True 值。 'B 等于 "", 未初始化或初始化为""的“非固定长度字符串变量”...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     7.6.1 窗口的最小和最大  7.6.2 VBA代码的存储  7.6.3 VBA代码的输入  7.7 VBE环境的定制  7.7.1 使用“编辑器”选项卡  7.7.2 使用“编辑器格式”选项卡  7.7.3 使用“通用”选项卡  7.7.4 使用“可...
  • 1、字符指针字符串赋值给字符指针变量时,可以在定义的时候就初始化,也可以先定义,再赋值。2、字符数组但字符串赋值给字符数组时,可以在定义的时候就初始化,但不可以像字符指针那样先定义,后面再赋值。为了搞...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

vba变量初始化