精华内容
下载资源
问答
  • 变量初始值与变量声明类型直接相关,再次说明了数据类型的重要性和基础性。变量声明类型(Declared Type) 初始值/默认值(Initial Data Value) Boolean FALSE Byte, Currency, Double, Integer, Long, LongLong 0 ...

    变量初始值与变量声明类型直接相关,再次说明了数据类型的重要性和基础性。

    变量声明类型
    Declared Type

    初始值/默认值
    Initial Data Value

    Boolean

    FALSE

    Byte, Currency, Double, Integer, Long, LongLong

    0 value of the corresponding value type (section 2.1)

    Double or Single

    +0.0 value of the corresponding value type

    Date

    30 December 1899 00:00:00

    String

    The empty string

    Variant

    Empty

    String*n, where n is an integer between 1 and 65,535

    A string of length n consisting entirely of the implementation dependent representation of the null character corresponding to Unicode codepoint U+0000.

    Fixed size array whose declared element type is one of Boolean, Byte, Currency, Data, Double, Object, Single, String, or String*n

    The array data value whose number of dimensions and bounds are identical with the array’s declared dimensions and bounds and whose every element is the default data value of the declared element type.

    Fixed size array whose declared element type is Variant

    The array value whose number of dimensions and bounds are identical with the array’s declared dimensions and bounds and whose every element is the value Empty.

    Resizable array whose declared element type is one of Boolean, Byte, Currency, Data, Double, Object, Single, String, or String*n

    An array value with no dimensions.

    Resizable array whose declared element type is Variant

    An array value with no dimensions.

    Object or a Specific class name

    The value Nothing.

    Specific UDT name

    The UDT data value for the named UDT type whose every named element has the default data value from this table that is appropriate for that element’s declared type.



    展开全文
  • 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的信息(也可以查看其它类型转换函数信息)下一行。

     

     

    展开全文
  • 一个SUB内变量尽量要独立,因为所有变量都在sub生效 1、全局变量在整个工程文件内都有效;...4、全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量不可知。 5、静态局部变量...

    一个SUB内变量尽量要独立,因为所有变量都在sub生效

     

     

    1、全局变量在整个工程文件内都有效;

    2、静态全局变量只在定义它的文件内有效;

    3、静态局部变量只在定义它的函数内有效,且程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效。
    4、全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。

    5、静态局部变量与全局变量共享全局数据区,但静态局部变量只在定义它的函数中可见。静态局部变量与局部变量在存储位置上不同,使得其存在的时限也不同,导致对这两者操作 的运行结果也不同。

    https://blog.csdn.net/Littlehero_121/article/details/88634153

     

     

    • Public和Private只能在过程外使用,用来定义模块级变量,区别是Public定义的模块级变量对外界可见,可以被本模块和其他模块使用。而Private定义的模块级变量,只能用于本模块,不能被其他模块调用。
    • Dim可以用于过程内部和外部,但不管用于过程内外,使用Dim语句定义的变量均为私有,无法在模块外使用;
    • Static只能在过程内部定义静态变量,由Static定义的变量只能用于本过程,不能被本模块的其他Sub或Function调用,更不能被其他模块调用。

     

    跨模块级
    public  (只能定义在过程外)


    模块级
    public    (只能定义在过程外)
    private   (只能定义在过程外)
    dim   

    过程级
    dim
    static   (只能定义在过程内)

     

     

     

    先把代码写着,一会不全

    局部变量

    dim k 

     这种其他sub无法

    Dim j
    Public k
    Private l
    
    
    Sub test01()
    Static m
    
    j = 1
    k = 0
    l = 3
    m = 5
    
    For i = 1 To 5
       k = i * i
       Debug.Print k
    Next
    
    End Sub
    
    
    Sub test02()
    
    Debug.Print k
    End Sub
    
    
    Sub test03()
    
    test01
    Debug.Print k
    Debug.Print j
    Debug.Print l
    Debug.Print m
    
    End Sub
    

     

    '同一个sub里,不要用重复的变量名!

    为啥循环完了,i=6了?

    Dim j
    Public k
    Private l
    
    
    Sub test01()
    Static m
    
    j = 1
    k = 0
    l = 3
    m = 5
    
    For i = 1 To 5
       k = i * i
       Debug.Print "i=" & i; "  ";
       Debug.Print "k=" & k
    Next
    
    '为毛i=6了?
    Debug.Print "i=" & i
    Debug.Print "i=" & i
    Debug.Print "i=" & i
    
    '同一个sub里,不要用重复的变量名!
    x = i + 1
    Debug.Print "x=" & x
    
    
    End Sub
    
    
    Sub test02()
    
    Debug.Print k
    End Sub
    
    
    Sub test03()
    
    test01
    Debug.Print k
    Debug.Print j
    Debug.Print l
    Debug.Print m
    End Sub
    

     

     

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

    2020-01-13 19:47:11
    初始化仅仅意味着给变量分配一个开始(初始。 在工作表上放置一个命令按钮并在下面添加代码行。要执行代码行,请单击工作表上的命令按钮。 整数 整数变量用于存储整数 Dim x As Integer x = 6 Range("A1")...

     

     

    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。

     

     

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

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

    展开全文
  • VBA学习笔记之过程

    2019-09-26 00:36:54
    上图显示vba过程有传值和传址,...我的理解:变量存储在内存地址里,传值传递的是变量而不是变量的地址,因此该变量初始值不变;传址传递的是变量的地址,因此变量也随之改变。 转载于:https://www.cnblogs.co...
  • Sub 作业题方法一() ' ' 作业题方法一 Macro ' ' Dim iCol As Integer, ...iColor = 1 '设置颜色索引值的初始值 For iCol = 2 To 57 If Cells(iCol, 1) >= 0 Then '如果当前单元格的值>=0 Cells(iCol, 2).Interio
  • Tina:我的VBA学习之旅(六)——程序结构之循环结构​zhuanlan.zhihu.com数组是什么,先不管,先来看看最近我写的VBA程序的部分两个部分... C1 = 0 '计数所用变量初始化为0 C2 = 0 C3 = 0 C4 = 0 C5 = 0 C6...
  • Excel_VBA教程

    2014-09-22 11:36:34
    29.编写过程来初始化窗体 211 30.编写过程填充列表框控件 213 31.编写过程控制选项按钮 213 32.编写过程同步文字框和旋转按钮 214 33.编写过程关闭用户窗体 214 34.转移窗体数据到工作表 215 35.使用INFO SURVEY应用...
  • VBA查看某个变量的类型 VarType(varname) 常数值描述  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)...
  • 常用语变量初始化等设置。 Private Sub UserForm_Initialize() MsgBox Me.Caption End Sub 255、 窗体关闭前的事件 Cancel:为>0的时禁止关闭动作的发生 CloseMode:关闭的模式,0点击关闭按钮,1是使用...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    29.编写过程来初始化窗体 211 30.编写过程填充列表框控件 213 31.编写过程控制选项按钮 213 32.编写过程同步文字框和旋转按钮 214 33.编写过程关闭用户窗体 214 34.转移窗体数据到工作表 215 35.使用INFO SURVEY应用...
  • Excel VBA函数参考手册

    2018-02-06 16:35:41
    必要的 number 参数是任何有效的数值表达式,如果 number 包含 Null,则返回 Null,如果 number 是未初始化的变量,则返回 0。 说明 一个数的绝对值是将正负号去掉以后的。例如,ABS(-1) 和 ABS(1) 都返回 1。 Abs...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    变量与常量............................................................................................................................1 第五节 数组........................................................
  • 返回 Boolean ,指出变量是否已经初始化。 【语法】 IsEmpty(expression) 必要的 expression 参数是一个 Variant,包含一个数值或字符串表达式(实际上还可以是单元格)。但是,因为 IsEmpty 被用来确定个别...
  • 如果它是未初始化的变量,则返回 0。 数字的绝对值是其无符号大小。 例如, ABS(-1)和ABS(1)都返回。 1 示例 此示例使用 Abs 函数计算数字的绝对值。 Dim MyNumber MyNumber = Abs(50.3) ' Returns 50.3. My...
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    第四节变量与常量............................................................................................................................1 第五节数组...................................................
  • 上一章给大家分享了SelectCase结构形式并且和IF结构做了比较,今天这一章给大家分享一下VBA基本语法中比较重要的结构For循环结构。...For 循环变量=初始值 to 结束值 step 步长 循环体 Exit ForN...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     9.5.7 初始设置  9.5.8 代码的编写  9.5.9 排序过程的编写  9.5.10 更多的测试  9.5.11 修复问题  9.5.12 实用程序的可用性  9.5.13 对工程进行评估  第10章 创建Function过程  10.1 Sub过程与Function...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
     9.5.7 初始设置  9.5.8 代码的编写  9.5.9 排序过程的编写  9.5.10 更多的测试  9.5.11 修复问题  9.5.12 实用程序的可用性  9.5.13 对工程进行评估  第10章 创建Function过程  10.1 Sub过程与Function...
  • Excel VBA实用技巧大全 附书源码

    热门讨论 2010-10-08 18:59:24
    04045引用输入了公式或的最后一行单元格(单列情况之二) 04046引用输入了任何内容的最后一行单元格(多列情况之一) 04047引用输入了公式或的最后一行单元格(多列情况之二) 04048引用输入了任何内容的最后一...
  • 第3行的代码,在Excel中要读取Word文档的内容,需要创建Word对象,就相当于你启用Word软件第6行的代码,变量j标记行,初始值赋值为1第7行的代码,启用文件对话框第9行的代码,设置文件对话框可以多选第11行的代码,...
  • 答:请看下方代码和运行效果:'A 等于 Empty, 因为尚未初始化的“不定型变量”都等于 Empty。'但如果检测 A = "" 或 A = 0, 也都可以得到 True 。 'B 等于 "", 未初始化或初始化为""的“非固定长度字符串变量”...
  • 1. VBA脚本不能自动运行 ...初始值: 0 控制是将 acad.lsp 文件加载到每个图形中,还是仅加载到任务中打开的第一个图形中。  0 仅将 acad.lsp 加载到任务中打开的第一个图形中  1 将 acad.lsp
  • VBSCRIPT中文手册

    热门讨论 2010-11-12 10:13:06
    Empty 表示尚未初始化的变量值。 Eqv 运算符 使两个表达式相等。 Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的。 ...
  • VBSCRIP5 -ASP用法详解

    2010-09-23 17:15:46
    Empty 表示尚未初始化的变量值。 Eqv 运算符 使两个表达式相等。 Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的。 ...
  • vb Script参考文档

    2009-07-28 22:13:02
    Empty 表示尚未初始化的变量值。 Eqv 运算符 使两个表达式相等。 Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的。 ...
  • VBScript 语言参考

    2008-10-07 21:30:05
    Empty 表示尚未初始化的变量值。 Eqv 运算符 使两个表达式相等。 Erase 语句 重新初始化固定数组的元素并重新分配动态数组的存储空间。 Err 对象 含有关于运行时错误的信息。 Eval 函数 计算并返回表达式的。 ...

空空如也

空空如也

1 2 3 4 5
收藏数 90
精华内容 36
关键字:

vba变量初始值