精华内容
下载资源
问答
  • 变量初始值与变量声明类型直接相关,再次说明了数据类型的重要性和基础性。变量声明类型(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.



    展开全文
  • 想整理下VBA变量的3个问题 变量的声明 变量的赋值 变量的默认值(如果没有赋值,那么默认值就是初值) 1 变量的作用域(生效范围) 1.1 变量的作用域 跨工作簿变量? 可以跨多个工作簿生效,有这样的变量吗?...

    目的:整理VBA变量相关的3个问题

    • 变量的声明  (变量的定义)----对比常量的定义
    • 变量的作用域(生效范围)
    • 变量的赋值 和 变量的默认值(如果没有赋值,那么默认值就是初值)

    0 要讲变量,先讲常量 常量定义用 const

    0.1 常量的定义

    • 常量英文 constant
    • 常量关键字 const
    • 常量定义的语句   
    • const a1 =1
    • const a2 as string = "hello"

    0.2 常量和变量的区别:声明时马上赋值

    • 常量必须定义的时候,马上赋值 ( 而变量不能这样)
    • 常量关键字 const  as 
    • 变量 关键字 dim   as (类似的还有  static private public)
    • dim 比较特殊,可以作为 模块级的声明,也可以作为过程级的声明

    0.3 常量可以定义在模块内或过程内

    如果时模块级,也可以用 public  private等关键字,声明作用域

    • 常量的声明可以在 模块的第一个sub 前,也可以在sub内

    比如

      Public Const a5 As String = "hello"

    0.4 常量的测试

    
      Const a1 = 1
      Const a2 As Integer = 2
    '   dim Const a3 As Integer = 3  '语法报错,常量定义 只用 const 和 dim是对应的!
      Dim a4 As Integer
      Public Const a5 As String = "hello"
     
      
      
    
    Sub testa101()
       Const b1 = 10
       
       Debug.Print "a1=" & a1
       Debug.Print "a2=" & a2
       Debug.Print "a5=" & a5
       Debug.Print "b1=" & b1
       
    End Sub

    1 变量的声明 (就是变量的定义)

    变量的声明就是变量的定义,先定义好变量,再使用是个好习惯

    1.1 先声明好变量类型

    • 初学时,可以先不管,不定义变量类型
    • 但要明白,dim a 这种没声明的,其实都时隐式声明为了 dim a as variant (通用型变量)
    • 初学之后,一定要先声明变量,加option explicit,不加这个遇到变量赋值问题不会报错。
    • 声明语句   dim  a  as integer
    • 特殊问题;   dim i , j as integer 只有j 是int ,而i 是 variant

    1.2 变量分类

    • 基本型变量:   integer string double float date
    1. Boolean
    2. Byte
    3. Integer
    4. Long
    5. Currency
    6. Single
    7. Double
    8. Date
    9. String 
    • 通用性变量:   variant ,默认就是通用变量,可以随时改变变量的类型
    • 数组变量:       dim arr1() as string
    • 对象变量:       如 dictionary  worksheet 等等,dim dict1 as object ,对象变量的赋值要用set

    1.3 变量定义时不指定类型,默认都是  variant 通用型变量,很灵活,但是也很费

    •  dim a1 
    • dim a1 as variant

    1.4 动态变量和静态变量,猜想英文原意?

    • dim 是 dynamic? 动态变量?
    • static 静态变量

    1.5 不能在声明的变量同时赋值。变量需要先声明,后赋值。

    Dim i As Integer   
    Dim j As Integer: j = 1     '错误代码,不能再模块最上面给变量赋值
    
    
    Sub test100()    
    Debug.Print i
    Debug.Print j
    
    i = i + 1
    j = j + 1
    
    
    Debug.Print i
    Debug.Print j
    
    End Sub
    

    1.5.1 特殊用法:相当于合并语句 (意义不大)

    • 只能在过程内,因为变量只能在过程内赋值!

    • 过程级变量,声明和赋值,可以用 :链家,相当于合并语句而已

    • 声明+ 赋值语法   dim  a  as integer :a=1
    • 声明后 赋值的标准语法 
    • dim  a  as integer
    • a=1
    Const k1 As Double = 3.1415926
    
    
    Sub test100()
    
    Dim i As Integer
    Dim j As Integer: j = 1
    Const k As Double = 3.1415926
    
    Debug.Print i
    Debug.Print j
    Debug.Print k
    Debug.Print k1
    
    i = i + 1
    j = j + 1
    
    
    Debug.Print i
    Debug.Print j
    
    End Sub
    

    2  变量初值与默认值

    2.1 变量的初值

    • 初值:是变量最初被赋予的值
    • 一般要求变量赋值后才可以表达式运算
    •  如python 会在表达式运算时,把变量  代换为 值,所以没赋值会报错!

    2.2 变量的默认值

    • 默认值:变量没被赋值时,默认的值(有的语言没有,会报错)
    • VBA看起来是给变量赋予了默认值。
    • 比如变量一般默认值为 “”

    2.3  不同类型的变量,其默认值不同

    赋值,初值,默认值(和类型有关)一般为0!

    • integer    默认值   0
    • string      默认值  ""     
    • long        默认值 0
    • double    默认值 0.0    
    • object     nothing           释放也时 set object = nothing
    • 等等

    2.4不同变量类型的默认值查询

    https://blog.csdn.net/hpdlzu80100/article/details/80664914

    2.5 为什么一般不能在声明变量时赋值呢?

    • 声明时不能给变量赋值。(变量,静态变量都会被初始化,但是而常量并不会被初始化)
    • 因为当过程开始运行时,所有的变量都会被初始化。
    • 一个数值变量会初始化成 0,变长字符串被初始化成零长度的字符串 (""),而定长字符串会被填满 ASCII 字符码 0 所表示的字符或是 Chr(0)。

    3 变量的作用域(生效范围)

    变量到底能再哪些地方生效,这个由2个因素决定

    1.  变量声明时,声明语句前面的关键字,比如 dim  private  public
    2. 变量声明时,所在的代码的层级。 特别是用  dim 这种灵活而模糊的

    3.1 全局级作用域:用 global / public 来声明在模块最前面!(实测不生效!!!)

    变量可以跨工作簿/ 工程:

    1. 可以跨多个工作簿生效,有这样的变量吗?据说有
    2. 不能加Option Private Module 用global 和 public
    3. 我实测了不行,但据说是适用一个 EXCEL文件下,有多个工程的情况,没见过,暂时我测试没有看到可以跨工程的变量。

    3.2 工程级作用域:用 global /public 来声明在模块最前面(过程外)

    变量可以在整个工程内生效,可以跨这个工程内的模块

    1. 用public 关键字在模块的第1个过程之前声明的变量 (public不能用在过程内)
    2. 可以在多个模块内都生效
    3. public 声明的变量,丢失有两种可能,一种是你关闭了excel文件,另一种是你重新编辑了代码,其他情况都会保留的

    特殊情况

    1. Option Private Module
    2. 加上这句话后,这个模块内的代码,只能再本工程内使用
    3. 并且,点开EXCEL的菜单宏,将看不见这些宏了。

     

    3.3 模块级作用域 :用dim / private 来声明在过程外

    1. 用private 或 dim 在模块的第1个过程之前声明的变量,这时候  private 或 dim 此时等价。
    2. 差别是,dim 很模糊,可以用在过程内/过程外,而private 必须声明在过程外。
    3. 也就是用private a  as string 声明的变量,是模块级变量,不能声明在过程里。
    4. 如果加了这句话 一定只是在模块内生效 !Option Private Module

    3.4 过程级变量:用dim / static 来声明在过程内部!

    • 用 static 或 dim 在过程内声明的变量,只在这个过程内生效。但是 static 和dim  声明的变量完全不同
    • 差别是,dim 很模糊,可以用在过程内/过程外,static 声明的变量,只能定义在过程内。
    • static a1 这样定义的变量,虽然一定是定义在过程内的,但是 static定义的变量在过程结束后并不会被释放,而是一直起作用到,过程所在的模块 重置 会重新启动。
    • static a1 静态变量的作用域,还是过程内。但是生命周期在 模块重置/重启 前都一直生效。

       

    3.5  变量定义时,VBA的特殊问题

    • 作用域语句,是整行生效
    • 但是  声明语句 dim as 语句不是,对单个变量生效
    • 当相同名称的变量,多次以不同的作用域声明时,出现作用域冲突。这种情况,VBA 会自动以就近原则使用变量,即优先使用最近定义的变量。也就是一般会先使用过程内部的,更近的

    • 比如
    • 例子1: dim i , j as integer 只有j 是int ,而i 是 variant
    • 例子2: Public a6, a7 As Integer ,这2个变量作用域都时public

    4 变量生命周期 (生命期不完全等同于范围)

    变量的生命周期 和 变量定义时的 作用域定义是 密切相关的,基本就是作用域外,就不再生效。

    比如

    • 全局级:excel 程序打开后都生效,除非EXCEL关闭,一直在内存里
    • 工程级:当前的EXCEL表,工程,没有关闭就一直生效。
    • 模块级:当前模块在运行就生效
    •              (反之,没运行 这个模块 就不生效)
    • 过程级,过程执行时才开始生效,给其分配内存空间,过程执行结束就从内存释放
    •                (反之,没运行 这个过程/函数 就不生效,想生效就得调用它! 这就是调用原因!)
    • 过程级的例外:static 在过程执行后还是生效,将保留其值,直到模块重置或重新启动   
    •                    Static]定义的是静态变量,这意味着在过程结束后这个变量所占有的内存不会被回收,数据也不会被破坏,下次再调用该过程的时候,数据就依然存在。

    5  过程得作用域 和 变量作用域

    5.1 过程和函数的 默认作用域  public

    • 比如过程和函数默认是 工程级作用域
    • 实测,在sub 前加 public 可以,不加默认也时 public
    • sub  相当于    public  sub                       "在workbook内有效
    • function  相当于    public  function          "在workbook内有效

    5.2 过程/函数 也可以用 private 来声明

    • 但是如果加 private 声明,就限制在只在模块内生效,无法被跨模块调用
    • 如果定义为 private sub testsub1()           "只在本模块内有效。

    5.3 实测,过程/函数 好像无法 全局作用域?

    • 实测,在sub 前加global 自动消失

    5.4 过程/函数  声明为static

    • 如果声明为静态
    • 静态过程  static  sub ,其内部所有变量都是  static 变量

    5.5  变量的最终作用域 (两层 作用域 共同作用的结果)

    • 过程/函数的作用域 和变量的作用域是两回事
    • 但是 过程的属性 部分情况下会影响变量的作用域,如static sub

    6  变量的调用

    6.1 搞清楚,为什么要调用变量? 调用变量就得先调用其他过程/函数?

    • 首先,过程级的变量是无法调用的,即使你调用那个过程。这可以认为是一种对过程级变量的的保护。
    • 一般的过程变量,都是过程,开始运行时才重新分配内存(重新初始化),过程结束就重置了,这也是一般变量都不允许在过程外赋值的原因。因为即时是一个 声明为 public 变量,在某个过程内的赋值,也只有运行这个过程时才生效。
    • 而想要调用这个 public变量,在其他过程中的值,就必须调用那个 给这个 public变量赋值的过程,这就是过程调用。并且,只有1个程序调用另外一个程序过程中,才可以读到其他 程序的变量的值。

    6.2 怎么调用? 调用变量的几个条件

    变量如果想在多个程序之间调用

    • 首先要声明为 非局部变量。
    • 需要调用变量所在过程/函数,才能调用其他过程内的变量 (变量的赋值都在过程内,虽然变量可以声明在过程外)

    6.3 调用常量

    和调用变量是一样的,见下面的例子


    6.4 变量的传递方式

    情况1:为了调用其他程序的变量,而调用其他程序

    本程序(主程序)调用其他程序(被调用程序)时,可以取到其他程序的参数

    变量的调用,需要声明为非局部变量,且需要调用变量所在的代码,

    情况2:为了给其他程序的主动传递变量,而调用其他程序,并获得回调

    本程序(主程序)调用其他程序(被调用程序)时,可以把参数传给其他程序,并取得回调。而并调用的程序,被调用时必须传参数给它,否则无法正确调用

    • 被调用的程序,可以设定2种传递方式,进而影响给主程序的回调值。
    • 也就是会不会受影响,不由 主程序 决定!?

    • byref ,被调用程序 按地址传递,传回主程序的参数,回调时会受影响。
    • VBA默认按地址传递,方便管理?

    • byval  ,被调用程序 按值传递,传回主程序的参数,回调时会不受改变。

    按地址传递(ByRef),是指主程序直接将数据交给子过程(过程中定义传递方式),在过程中修改、调试、返回给主程序,主程序输出的是修改后的值。

    例如:如果我在参数中设为ByRef,那么ByRef的这个变量我可以改变它的值

    按值传递(Byval),是指将主程序的值(副本一份)给子过程,过程对副本操作,主程序输出的仍是原值。若想输出值传递后的值,可在子过程中设置输出。

    6.5 还有其他各种调用

    • 参数,变量得调用
    • 过程/函数得调用
    • 模块得调用
    • 被调用结束前,是不会释放得. 也就是除非调用它们得 宿主程序释放,否则不会释放

    7 实例

    7.1 实例:   变量的成功调用(工程级作用域,跨模块调用)

    举例:模块1代码

    Public t1
    Public t2
    Global Const t3 As Integer = 777
    
    Sub bbtest1()
    Dim k1
    
    t1 = 100
    k1 = 1000
    
    End Sub
    
    
    Private Sub bbtest2()
    Dim k2
    
    t2 = 101
    k2 = 1001
    
    End Sub
    

    模块2代码

    • 要成功的调用需要满足2个条件
    1. 必须要先调用这个变量的过程/函数
    2. 这个变量,必须是非过程级的,模块级的/工程级的
    • 如果  private 声明了一个过程,则这个过程只能被模块内调用,不能被跨到 模块2调用,这里会报错
    Sub cctest1()
    
    Debug.Print "t1=" & t1
    Debug.Print "k1=" & k1
    
    End Sub
    
    
    
    Sub cctest2()
    
    Call bbtest1
    Debug.Print "t1=" & t1
    Debug.Print "k1=" & k1
    
    End Sub
    
    
    
    Sub cctest3()
    
    'Call bbtest2    '报错,因为bbtest2 是private 无法被其他模块的程序调用
    Debug.Print "t1=" & t2
    Debug.Print "k2=" & k2
    
    End Sub
    

    7.2 实例:   静态变量的成功调用

    静态变量  static

    • 静态变量,肯定都是过程级变量(局部变量),只能声明在过程内,函数内
    • 静态变量的特点,是只要静态变量所在的模块,工程没关闭,静态变量都不会释放
    • 不会释放是什么意思?也就是说 内存空间不会释放,变量不会被重置掉。
    • 而一般的过程变量,都是过程,开始运行时才重新分配内存(重新初始化),过程结束就重置了,这也是一般变量都不允许在过程外赋值的原因。因为即时是一个 声明为 public 变量,在某个过程内的赋值,也只有运行这个过程时才生效。
    • 而想要调用这个 public变量,在其他过程中的值,就必须调用那个 给这个 public变量赋值的过程,这就是过程调用。并且,只有1个程序调用另外一个程序过程中,才可以读到其他 程序的变量的值。
    • 被调用程序的声明周期,应该和主调程序生命周期一致。
    • 利用这个可以做啥?
    • 静态变量在程序已经不在它们的过程里时仍然不会丢失它们的内容
    • static一个典型的用法,就是可以用来做累计值,反复调用其他程序时,自身的static变量一直在累计。

    Private x
    Private j
    
    Sub Qtest1()
    
     Static sum1
    ' sum1 = 0    '不能加这句, 这相当于循环开始进行了归0,VBA里静态变量就是要利用不赋初值的特性
     Call Qtest2
     sum1 = sum1 + x
     Debug.Print "sum1=" & sum1
    End Sub
    
    Sub Qtest2()
     x = 5
    End Sub
    
    
    Sub Qtest10()
     Call Qtest20
     sum1 = sum1 + j + k    '这里的k,是用的本过程的,不是其他过程得k,也没有更高作用于的k
     Debug.Print "sum1=" & sum1
    End Sub
    
    
    Sub Qtest20()
     j = 5
     k = 5    'k是过程变量,是无法传出去的
    End Sub
    

     

    7.3 实例:   常量的成功调用

    • 常量基本和变量也是一样
    • 按常量的 声明关键字的,定义在过程内,还是模块外,用的 dim ,private 还是 public global
    Const x2 = "hi"
    
    
    Sub testnew1()
    Const x1 = "hello"
    End Sub
    
    
    Sub testnew2()
    Call testnew1
    Debug.Print "x1=" & x1
    Debug.Print "x2=" & x2
    End Sub
    

    展开全文
  • 2 VBA变量可以不赋值,直接可以先进入表达式运算,是因为有默认值 2.1 变量 一般变量默认值为"" 2.2 数组 数组坐标 一般数组默认需要从0开始,注意不要 造成下标越界等 比如arr1= array() 默认从0...

     

     

    1 基础概念:默认值只是缺省时的 备选值而已

    • 初值  <> 默认值
    • 默认初值,只是不赋值时的默认值而已

     

    2  VBA里变量可以不赋值,直接可以先进入表达式运算,是因为有默认值

     

     

    2.1 变量

    • 一般变量默认值为""

     

     

    2.2 数组

    • 数组坐标
    • 一般数组默认需要从0开始,注意不要 造成下标越界等
    • 比如arr1= array() 默认从0开始
    • 但是arr1=range()  或arr1=[{}] 一般index从1开始
    • 因为EXCEL表的row column 的index 都必须从1开始,不是从0开始

     

     

    展开全文
  • 三、在配置表中获取变量初始值 在程序启动时,需要初始化一些参数,或是在执行过程中,取得一些变量或是字段的配置参数。这些数据可能存储在某一个表中,为了能够方便的获取这些数据,编制了下面的这个函数,可以很...

    表格操作系列

    三、在配置表中获取变量初始值

    在程序启动时,需要初始化一些参数,或是在执行过程中,取得一些变量或是字段的配置参数。这些数据可能存储在某一个表中,为了能够方便的获取这些数据,编制了下面的这个函数,可以很方便的取得初始值。

    函数代码

    Public Function GetFiesVal(Fies As String, Optional Sh As String = "INI", Optional FiesColName As String = "字段", Optional ValColName As String = "值") As String
    Dim Rng As Range
    Dim co As Integer
    Dim 字段列 As String
    Dim i As Integer
    Dim sp() As String
    sp = Split(Fies, ",")
    If Sh = "" Then Sh = ActiveSheet.Name
    With ThisWorkbook.Sheets(Sh)
        Set Rng = .Range("1:1").Find(ValColName, lookat:=xlWhole)
        If Not Rng Is Nothing Then co = Rng.Column
        
        Set Rng = .Range("1:1").Find(FiesColName, lookat:=xlWhole)
        If Not Rng Is Nothing Then
            字段列 = Chr(64 + Rng.Column) & ":" & Chr(64 + Rng.Column)
            For i = 0 To UBound(sp)
                Set Rng = .Range(字段列).Find(sp(i), lookat:=xlWhole)
                If Not Rng Is Nothing Then Fies = Replace(Fies, sp(i), .Cells(Rng.Row, co))
            Next
        End If
    End With
    
    GetFiesVal = Fies
    End Function
    

    配置表样子

    在这里插入图片描述

    调用例子

    Sub aa()
    MsgBox GetFiesVal("数据库,用户,密码", , "变量")
    End Sub
    

    返回值

    在这里插入图片描述
    ——专注办公软件的二次开发及培训,你有问题,我有思路!
    ——微博、微信、CSDN同号:w_dexu
    ——转载请注明出处!

    微信二维码扫码加微信

    展开全文
  • EXcelVBA变量赋值运算

    千次阅读 2020-06-03 15:55:15
    因为美元符合是字符,它需要用引号来包括起来 4、字符&必须用于每次你要在前面的字符串后加新信息的时候 5、变量Cost是一个占位符,当过程运行时,计算器的实际价格将显示在这儿 6、字符&可以连接任何字符串 7、...
  • 虽然VBA允许,不对变量赋初值,不定义,直接开始使用。但确实不是什么好习惯 模块开头加上 option explicit 吧, 然后,先定义 x=0, y=1 等等 变量没有初值的情况,在第一次数运算时 会被默认为0 ,x+1=1 ...
  • ExcelVBA 之Static 变量

    千次阅读 2020-06-03 17:23:12
    使用Dim语句声明的当地变量当过程结束时就会丢失,当地变量的存活期是随着过程的运行的,并且它们在程序每次运行的时候可以被重新初始化。VB允许你通过改变声明方式延长当地变量的存活期。 用Static关键字声明的...
  • Excel VBA 基础部分 一、定义语句 '定义变量和分配存储空间 Dim [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ] . . . 部分 说明 withEvents 可选。该关键字指定varname是对象变量,...
  • 一个SUB内变量尽量要独立,因为所有变量都在sub生效 1、全局变量在整个工程文件内都有效;...4、全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量不可知。 5、静态局部变量...
  • 在使用VBA变量的某些时候,我们需要获知变量的存储范围,所以如何获取变量类型是一个重要点。通过变量类型,我们就很容易的获取它的字节数,从而却动它的存储范围,就象C/C++所用的sizeof(var_type)那样。那么摆在...
  • VBA传递参数步骤

    2020-12-22 06:54:40
    到目前为止,你已经创建了简单的可以执行具体任务的VBA过程,这些过程在它们运行前没有要求你提供额外的数据。然而,在现实生活中,过程(子程序和函数)经常需要参数。参数(自变量)是过程工作时需要的一个或多个数值...
  • VBA二维数组怎么赋值?

    千次阅读 2020-12-22 18:26:51
    展开全部可通过 “ = ” ...在VBA中对变量进行赋值可通过 “ = ” 符号或 “ Set ” 关键字进行。通过 “ = ” 符号对变量赋值的语法格式有以下几种。变量名=数据变量1=变量2 运算符 数据变量1=变量2 运算符 变量3...
  • VBA静态变量与常量

    千次阅读 2009-10-19 22:38:00
    VBA代码中包含变量、运算符和语句。变量在代码中起到互交与连接的作用。变量从创建为合适的对象与数据类型,到初始化,再通过运算符计算或执行语句修改,来完成整个互交的过程。 声明变量的关键词是Dim,其语法是 ...
  • 枚举类型的初始值问题

    万次阅读 2007-06-08 19:39:00
     首先记住两点:1、内置类型变量(int,bool,指针等)的初始化规则在函数体外(全局)定义的内置类型变量会自动初始化0,函数体内定义的内置类型变量不会初始化。类里面定义的内置类型变量不会自动初始化。2、类...
  • VBA二维数组的基础介绍

    千次阅读 2020-12-22 18:26:51
    第二条语句: ActiveCell.Offset(counter-1, 0).Value = myArray(counter)将 myArray 成员的输入到当前单元格里。当前单元格为A1。因为变量 counter 等于1,所以上面的语句就等于: ActiveCell.Offset(1-1, 0)....
  • vb 如何给静态变量赋初值

    万次阅读 2019-03-20 18:34:23
    vb中不能在变量声明时赋默认值以外的初值,想要给静态变量赋初值,必须增加一个标志变量,如: Sub ss() Static i As Integer, f As Boolean If Not f Then i = 3: f = True '运行代码 End Sub ...
  • 未赋值变量的默认值

    千次阅读 2019-09-27 19:33:51
    2019年9月25日 ​ 在java思考题中遇到这么一道题: public class MyClass{ static int i; public static void main...​ 这题考了两个知识点,一个是关于静态变量的,在加载类的时候就已经加载到内存了。因...
  • 大家好。 只是定义了数组,但由于把数组赋值时放到了if语句里,导致可能由于没有符合if语句的情况而没有给数组具体赋值,然后对数组进行其他操作(比如进行数组内数值排序)就会报错。 我想问下,怎么判断通过...
  • 静态变量初始

    2015-11-02 17:01:40
    #include using namespace std; int fib() {  static int a1=0;...上面程序是求解前十个菲波那切数列的数值,其中static Int变量初始化之后当再次调用函数时,前两句不在执行。
  • VBA 中Dim含义

    千次阅读 2018-06-07 17:17:00
    楼主是个初学者,在应用vba时遇到了dim方面的问题,查了很多资料后想把关于dim的这点儿知识简单整理出来 首先,从我遇到的问题作为切入点吧, (不得不承认我遇到的错误是很低级的) 具体的情境就不还原了,将问题...
  • Excel VBA函数参考手册

    2018-02-06 16:35:41
    必要的 number 参数是任何有效的数值表达式,如果 number 包含 Null,则返回 Null,如果 number 是未初始化的变量,则返回 0。 说明 一个数的绝对值是将正负号去掉以后的。例如,ABS(-1) 和 ABS(1) 都返回 1。 Abs...
  • 时 间:2017-08-02 09:37:28作 者:摘 要:关于VBA的0、""(空字符串)、Null、Empty、与Nothing的区别正 文:给某人讲Is Nothing 与 Null 及 “”的区别,说了之后感觉不够完整,百度了一下。从CSDN抄了一段,献给...
  • VBA类模块介绍

    千次阅读 2021-04-27 01:42:37
    vba类模块创建,属性、方法、事件使用
  • VBA静态变量与常量(转)[@more@]  VBA代码中包含变量、运算符和语句。变量在代码中起到互交与连接...变量从创建为合适的对象与数据类型,到初始化,再通过运算符计算或执行语句修改,来完成整个互交的过程。  声...
  • VBA-2--变量Variables

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

    千次阅读 2020-06-04 19:50:45
    在前面部分,你创建了一个计算三个数值的平均的函数,假设,你有时只想要计算两个数的均值,你就可以将第三个参数设置为可选的。为了不破坏原来的函数MyAverage,我们来创建一个新的函数Avg,来计算两个
  • 对象代表应用程序中的元素,类似... Sub GetWindowName() Dim WindowName As String '将活动窗口的标题赋值给变量WindowName WindowName = Application.ActiveWindow.Caption '显示该变量值 MsgBox WindowName End Sub
  • vba中布尔类型、字符串操作

    千次阅读 2017-10-08 15:09:00
    vba中,bool类型数据可以参与数学运算,true为-1,false为0 1 Sub mysub() 2 Dim mybool As Boolean 3 Debug.Print 4 Debug.Print 5 mybool = (3 > 4) Or (3 < 6) 6 Debug.Print mybool 7 ...
  • //笔者以为,对于基础概念的探讨,不能说是无聊,恰恰相反,是非常有趣的,就好比本节要谈论到的变量。 //本小结的讨论略过变量作用域 变量——提供一个具名的、可供程序操作的存储空间。变量提供存储空间,存储...
  • 辨析Empty,Null和Nothing在VBA变量一般都是强类型的,即总声明成Integer,Long,Single,Double,String或Date等类型,这些强类型的毋需考虑Empty、Null和Nothing。有时我们需要定义一种能包含所有类型的变量,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,883
精华内容 753
关键字:

vba变量初始值