精华内容
下载资源
问答
  • VBA常量(八)

    2019-09-28 00:15:40
    常量声明与声明变量相同。 以下是命名常量的规则 - 常量名称必须使用一个字母作为第一个字符。 常量名称不能在名称中使用空格,句点(.),感叹号(!)或字符@,&,$,#。 常量名称的长度不能超过255个字符。 不...

    常量是一个命名的内存位置,用于保存脚本执行期间固定(无法更改)的值。如果用户试图更改常量值,则脚本执行结束时会出现错误。常量声明与声明变量相同。

    以下是命名常量的规则 -

    • 常量名称必须使用一个字母作为第一个字符。
    • 常量名称不能在名称中使用空格,句点(.),感叹号(!)或字符@$#
    • 常量名称的长度不能超过255个字符。
    • 不能使用Visual Basic保留关键字作为常量名称。

    语法

    在VBA中,需要为声明的常量赋值。如果试图改变常量的值,就会抛出一个错误。VBA中常量的语法如下所示 -

    Const <<constant_name>> As <<constant_type>> = <<constant_value>>

    示例

    在这个示例中,创建一个“ConstantDemo”程序来演示如何使用常量。

    参考以下代码实现 -

    Private Sub ConstantDemo()
    
       Const MyInteger As Integer = 720
       Const myDate As Date = #10/21/2000#
       Const myDay As String = "Sunday"
    
       MsgBox ("整数值是:" & MyInteger & Chr(10) & "myDate的值是:" & myDate & Chr(10) & "myDay 的值是:" & myDay)

    执行上面示例代码,得到以下结果

     

    转载于:https://www.cnblogs.com/sunyllove/p/11348034.html

    展开全文
  • VBA 全局常量定义

    千次阅读 2019-03-17 22:03:00
    Public Const INDEX As Integer = 16 Public Const RESULT_SHEET As String = "result" Public Const ACTIVE_SHEET_NAME As String = "sheet1" 转载于:https://www.cnblogs.com/onelikeone/p/10549239.html...
    Public Const INDEX As Integer = 16
    Public Const RESULT_SHEET As String = "result"
    Public Const ACTIVE_SHEET_NAME As String = "sheet1"

     

    转载于:https://www.cnblogs.com/onelikeone/p/10549239.html

    展开全文
  • Hello,大家好,在前面我们说过Excel函数中间的数组含义,那么你是否知道VBA中间的两个数据处理利器字典+数组呢?他们一旦结合起来将会发挥无可估量的作用,提升执行效率就在分秒之间。今天我们先说说数组,在下期...

    Hello,大家好,在前面我们说过Excel函数中间的数组含义,那么你是否知道VBA中间的两个数据处理利器字典+数组呢?他们一旦结合起来将会发挥无可估量的作用,提升执行效率就在分秒之间。今天我们先说说数组,在下期我们会说说字典。

    15ba06bdea0a2ef4f1b82ccefa383f77.png

    那什么是VBA的数组呢?

    VBA数组可以理解成是储存的一组数据的一个地方。他的数据类型可以是数字,文本,对象,当然也可以是VBA数组。可能有些同学会觉得比较抽象,但是经过慢慢的学习就不会觉得抽象啦!

    或许在你心里会默默有一句话想问,我为嘛要学习数组呢?这么抽象的概念?当你听到他的优点以后,就会不这样想了。他的优点简而言之有2点,加快程序执行速度和简化代码功能,不要小看这2个作用,当你学习到后面就会发现你花很多精力在VBA对象上面是多么不明智的选择。

    如下2个例子,可以看到使用数组耗时0.039,而没有使用数组耗时6秒,数组的运算速度是没有使用数组的153倍,相信你肯定看到这么一个小的地方,速度竟然相差这么多?

    029b9bf069b147da39b704a8b330ed2c.png

    这个其实是和VBA的数组运算原理有很大的关系,VBA中的运算最终是在内存中进行的,如果数据已经在内存中,则直接进行运算,但如果数据是储存在单元格里则还需要先把数据从单元格里调入到内存中,然后再在内存中对数据进行运算.

    ac089c69c5da35899e7f8bccdd0515d2.png

    既然已经知道数组的重要性了,那么你可否知道VBA数组有哪几个分类?

    它可以分为2大类,如下:

    按维数划分:1维、2维…….60维

    按储存类型划分:静态数组、动态数组、常量数组

    1维数组:横向排列的一组值。

    代码如下所示,以下为1维数组和2维数组,我们用的最多的就是这2种,所以可以先了解这些。多维数组依次类推而已。

    41137c0747f05e299b26650817101244.png

    常量数组,arr = Array(1, 2, 3, 4, 5),数组Arr就是一个常数数组,他有5个常数元素,这个比较好理解吧!

    静态数组:顾名思义,就是数组的区域大小是固定不变的,一旦超出这个区域就会提示错误。Dim arr(1 To 10, 1 To 2) ,这个就是声明arr是一个10行2列的二维数组,你明白木有?

    动态数组:就是他的区域大小不固定的数组,这个在我们以后的工作中间,用的最多的就是这个动态数组啦!所以这个理解好这个非常重要,动态数组的声明方法和静态数组声明的方法稍有不同,动态数组是需要先用Dim声明是动态数组,当我们的数组大小一旦被确认了,还需要再次用Redim进行二次声明。

    例01,step-01 Dim arr(),这是先定义为动态数组

    Step-02 Redim arr( 第一维数组上标 to 第一维数组下标,第二维上标 to 第二维下标)

    举一个实例来说明吧!如下所示的,看了这个你肯定就明白了上面的那2个步骤了,step-01等同于Dim arr(),step-02等同于ReDim arr(1 To k),就这样我们完成动态数组的处理。

    e7027f6b4102c429c3f9ffafce4c72c1.png

    PS:需要注意的是,如果我们的数组需要随某个变量进行不断的扩充(减少),那么数组就需要多次进行声明,每扩充(减少)一次就声明一次;另外说一点如果数组是多维的,只能动态声明第末维的,如果需要把让第一维不断扩充,还需要先转置,这个处理方法比较麻烦,在我们以后会说到这个的处理方法,在这里先请熟记上面的知识点。

    1cde71413196d3964f782393fc51d1c1.png

    自此你肯定有疑问了,数据如何放在Excel中间呢?一起来看看,如下图所示的操作方法,这个例子说明了2个方法,把excel的数据赋值到数组(arr = Range("a2:d5")),把数组赋值到Excel中间(Range("a2:d5") = arr ),相信聪明的你肯定看到了。

    88d0f002bafabd0913531b6d28e516a3.png

    现在我们说说的几个简单的运算吧!一起来加深对数组的了解。

    VBA数组的大小确定,也就是我们说的上标和下标,通俗上说就是开始的位置和结束的位置值。

    77da4f0ba2241e0d913b37b0d2a9ec0f.png

    VBA数组的数据处理之筛选操作,就是在一个数组中间帅选出来我们需要的数据。这个的使用方法很简单,就是数组= VBA.Filter(要帅选的数组, 帅选条件,是否包含这个),怎么是不是很好理解?

    de3ec4049101b2e49cd6ec05b4874d4b.png

    VBA数组数据处理之拆分与合并

    1c285d3d962eef3cfe80dcfad49f006b.png

    求VBA数组的中间的最值方法

    3037063c232d92cf8a538a9ca039dce2.png

    数组的统计与求和

    4005f46c3ec646ec0ee24441dcb5d64b.png

    数组的查询和处理工作

    8eea87fda55d88876dce082f04543a97.png

    数组的拆分,这个在处理数组的数据时候,经常用到:

    256b816b8c48596e53d793eff07d5ea1.png

    怎么样,小伙伴们,您学会使用使用Excel VBA数组的基本概念和常用的使用方法了吗?相信你如果能够熟知上面的知识点,那么你对数组就能够入门了,有不懂的,有疑问的,可以下面进行留言。

    b24b4444f335cd1c586015fb536fecad.png

    如果小伙伴还有其他的想知道或者想了解的,都可以直接先关注我然后在私信我,告诉我们您想知道什么,或者想了解什么,我们会根据你的需要进行扩展的,谢谢大家的支持!

    如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。

    54983029eb965a1b7ffd40c16d3f6fe2.png

    我是Excel教案,关注我持续分享更多的Excel技巧!

    展开全文
  • 因为在Excel中VBA是默认隐藏且禁止运行宏的,所以首先介绍如何在Excel中启用VBA,然后介绍基础的变量、常量与循环、判断语句

    在Excel中启用VBA

    不同版本的Excel启用VBA的方式不同,以我工作中使用的Excel2007为例
    在Excel中启动宏
    首先,单击左上角菜单按钮,在单击弹出框中右下角的“Excel选项”
    信任中心
    选择左侧信任中心选项卡,再选择信任中心设置。随后在“宏设置”中选择“启用所有宏”
    启用所有宏
    随后返回Excel选项窗口,在常用选项卡中勾选“在功能区显示“开发工具”选项卡”开发工具显示
    我们就可以在Excel顶部看到VBA编程所要用到的选项卡啦
    完成

    变量的强制声明

    //声明变量
    Sub mysub()
    
    Dim a,b,c//为了防止发生歧义,应在生命变量后给变量赋初值.若未赋初值,则为默认值.此行代码中a,b,c为变体类型,默认初值为Empty
    
    Dim num As Integer//若声明的变量为Int类型,则默认初值为0
    
    Dim s As String//若声明的变量为String类型,则默认初值为空字符串,即"" 
    
    End Sub
    //VBA中即使不声明变量,也能直接使用,例如直接写
    r = 2
    

    但为减少程序错误,应使用

    变量的强制声明

    必须写在一个模块的第一行,即所有的Sub……End Sub之前

    Option Explicit//此时,若再使用未声明的变量,就会报错
    
    Sub subname()
    
    r = 2
    MsgBox r//程序运行至此处时报错,变量未声明
    
    End Sub
    
    

    需要注意的一点是,VBA是大小写不敏感的语言

    静态变量

    声明在Sub之外的模块级变量,不管是public还是private,都是静态变量

    Option Explicit
    
    Dim r//声明在此处,是静态变量
    
    Sub subname()
    
    r = r + 1//每次运行,r都会+1,停止运行程序r也不会归零
    
    End Sub
    
    

    静态变量值消失的情况

    1、将Excel关闭

    常量

    VBA中的常量使用关键字Const定义

    Sub mycon()
    
    Const r = 1
    r = 2//不应再次赋值,若再次赋值则程序报错
    
    MsgBox r
    
    End Sub
    

    常量在定以后不可改变

    循环语句

    FOR循环

    VBA中的FOR循环与JAVA、C#中的FOR循环逻辑相同,语法如下

    Option Explicit
    
    Sub myFor()
    Dim sum, i
    
    For i = 1 To 100 Step 1//代表i从1变化到100,每次变化量为1.如果不写Step n的话,默认为Setp 1
        sum = sum + i
    Next i//一次For循环结束后,进入下次循环,i的变化量为Setp后面的n值
    
    End Sub
    

    Do While循环

    当不知道我们的循环要循环多少次的时候,我们将会用到Do While循环

    Sub myDoWhile()
    
    Dim num, i
    
    i = 1
    num = 0
    
    Do While Cells(i, 1) <> ""//当Cells(i,1)不为零的时候,就一直循环
    
        num = num + 1
        
        i = i + 1//每次循环完,将i+1.如果不写,程序将会陷入死循环
        
    Loop//Do While循环以Loop结尾
    
    MsgBox num
    
    End Sub
    

    Do Until循环

    如果把Do While循环翻译成汉语,为

    当满足所写条件时执行

    那么Do Until则代表

    执行直到满足所写条件

    Sub myUntil()
    
    Dim r, sum
    r = 1
    
    Do Until r > 100//直到人>100时才停止执行
        
        sum = sum + r
        
        r = r + 1
        
    Loop
    
    MsgBox sum
    
    End Sub
    

    Do……Loop While循环

    将While放在Loop后面,则会是的程序先执行一遍Do的循环体,再去判断一下是否符合条件

    Sub myLoop()
    
    Dim r As Integer, sum As Integer
    r = 1
    
    Do//先执行一下sum=sum+1和r=r+1
        
        sum = sum + r
        
        r = r + 1
        
    Loop While r > 1//程序第一次执行到这里进行判断时,r=2,条件成立,所以继续执行
    
    //然后会不断循环,最后导致溢出报错
    MsgBox sum
    
    End Sub
    

    IF判断语句

    VBA中的IF判断语句与JAVA、C#中的IF判断大致相同,具体语法如下

    Option Explicit
    
    Sub myIf()
    
    Dim score, i
    score = 90
    
    If score>90 Then//记得每个IF条件后跟 Then,否则程序报错
        i = "优秀"
    ElseIf score>80 Then//ElseIf是连续的,中间不带空格
        i = "良好"
    ElseIf score > 60 Then
        i = "及格"
    Else
        i = "不及格"
    End If//,每个IF结束处跟EndIf.
    
    //若IF只有一次判断,则不用写EndIf,例如
    Dim i
    i = 2
    
    If i = 1 Then MsgBox i
    If i = 2 Then MsgBox i
    
    End Sub
    

    逻辑运算符

    三种逻辑运算符
    NOT 非,
    AND 与,
    OR 或

    逻辑运算符的优先级

    NOT>AND>OR

    而更常用的,我们用()去规定它们的判断顺序

    录制宏与字符串拼接

    录制宏按钮
    利用Excel中的录制宏功能,开始录制后我们的操作会被逐步转化为代码显示在VBE中

    Sub 删除一行()
    
    //这是我们进行删除一行操作 的录制宏
    
        Rows("21:21").Select
        Selection.Delete Shift:=xlUp
        
    End Sub
    

    而我们或许希望将这个删除行的操作运用到一个IF判断和FOR循环中,循环删除我们需要删除的行

    我们只需要对录制宏作出一定的改变,运用字符串拼接将固定行“21:21”改为可变化的行

    Sub 删除空行()
    //删除1-100行中第二列没有数据的行
    For  i = 100 To 1 Step -1//从第100行倒叙循环,所以Step为-1
    
    	If Cells(i,2) = "" Then
    	    Rows(i & ":" & i).Select//将“21:21”改为用&拼接的字符串,&前后都要有空格
    	    Selection.Delete Shift:=xlUp
        End If
        
    Next i
    
    End Sub
    

    需要特别注意,& 前后必须有空格,否则意思为将&之前的字符转化为long类型的数字

    展开全文
  • VBA中的标识符,常量和变量

    千次阅读 2018-06-07 23:33:52
    标识符: 在程序运行的过程中,通常需要将计算结果保存下来,在后面使用,程序中使用的数据都保存在计算机...2、长度不能超过255个字符3、不能使用VBA的关键字4、同一个过程内不能使用重复的名称常量: 在程序运行...
  • VBA自定义常量列表

    千次阅读 2011-07-17 22:19:44
    主要包括: ●  Calendar 常数 ●  CallType 常数 ...可以在VBA代码的任何地方采用常量名称代替实际的值。 UploadFiles/2006-5/55999873.rar 或见 http://my.mofile.com/fanjy  
  • Option Explicit #如果存在没有定义的变量,会出错,强制声明 Sub mathTest() Dim r1,s const Pi=3.1415 #值为常量,不能被修改 r1=Cells(4,3) s=Pi*r1*r1 Cells(4,4)=s End Sub
  • Sub 属性() ...'VBA对象属性的赋值 Sub 属性赋值() Sheet2.Name = "效率" Sheet2.Range("a1") = "hello vba" End Sub Sub 选择方法() Range("a1:a10")...
  • VBA中变量和常量的命名规则

    万次阅读 2012-05-07 18:07:59
    Variable Naming Conventions You can call your variables and user-defined functions anything you want, except where there is a clash ...with VBA keywords and function names. However, many programmer
  • VBA基础打卡

    2017-11-13 23:19:30
    vba
  • (2)VBA 关键字

    千次阅读 2014-05-04 13:58:15
    1.变量声明关键字
  • ExcelVBA编程系列之数据类型(1):常量

    千次阅读 2011-07-17 22:19:14
    常量,也称常数,在程序过程中其值保持不变。常数可以是字符串、数值、另一常数、任何(除乘幂与Is之外的)算术运算符或逻辑运算符的组合。每个主应用程序都可定义自己的一组常数,也可以用Const语句定义附加常数。...
  • VBA API详解

    千次阅读 2020-12-17 22:27:10
    Office版本变动  在office2010以前微软只提供了32-bit版本,但在2010以后出现了32-bit和64-bit两个版本...后者能处理更大的数据和VBA代码运行速度得到提升。代码的兼容性也变得复杂,特别是API的声明。 版本区别 ...
  • VBA调用Shell

    2021-08-28 15:32:59
    VBA中执行Shell介绍,打开应用,执行python、bat、mysql;
  • 想整理下VBA变量的3个问题 变量的声明 变量的赋值 变量的默认值(如果没有赋值,那么默认值就是初值) 1 变量的作用域(生效范围) 1.1 变量的作用域 跨工作簿变量? 可以跨多个工作簿生效,有这样的变量吗?...
  • VBA第3课 常量与变量

    2015-04-29 23:11:09
    Sub 常量() Const pi = 3.1415926 End Sub Sub 变量() Dim a As Integer a = 100 a = 200 End Sub ...a = 200 '变量,可不用声明 Debug.Print pi * a '在立即窗口显示 End Sub 转载请注明作者与出处:ht
  • 1.几种不同的声明:公共变量:Public变量名As数据类型 私有变量:Private变量名As数据类型 静态变量:Static变量名As数据类型 Dim的声明是最常见的声明,包括以上三种,都是针对变量不同的作用域来选择如何声明...
  • VBA】全局数组定义

    千次阅读 2018-07-24 17:31:00
    【说明】 全局数组定义(写在Module的最上面) 'Array Public Arr_approver Public Arr_delegator Public Arr_Role 转载于:https://www.cnblogs.com/dlsunf/p/9361388.html
  • VBA中的数据类型在定义程序中的变量或常量时,需要设定各变量或常量的数据类型。设定数据类型后,程序在运行时可以节省内存空间,优化运行性能。VBA的数据类型与其他编程语言的数据类型相似,甚至个别是相同的,详细...
  • VBA基础知识

    千次阅读 2019-11-12 14:18:36
    VB、VBA、Microsoft office、excel、access、PowerPoint1.VBA的基本概念2 数据类型2.1 VBA基本数据类型2.2 VBA自定义的数据类型3 VBA常量3.1 VBA系统定义常量3.2 VBA固有常量3.2 VBA符号常量4 变量4.1 声明4.1 赋值5...
  • VBA全局变量

    万次阅读 2017-06-25 23:05:10
    VBA的全局变量在模块的开头定义,即可在整个工作簿使用,包括sheet、其它模块、userform等所有控件都可以调用。定义方法是在模块的开头输入Option Explicit,声明你需要定义的变量,比如定义一个Variant变量K: ...
  • VBA静态变量与常量

    千次阅读 2009-10-19 22:38:00
    VBA代码中包含变量、运算符和语句。变量在代码中起到互交与连接的作用。变量从创建为合适的对象与数据类型,到初始化,再通过运算符计算或执行语句修改,来完成整个互交的过程。 声明变量的关键词是Dim,其语法是 ...
  • Hello,各位同学们大家好。前几次的VBA分享,在留言区收到了很多同学的实际需求。大家的支持,是我们持续分享的动力。这边会逐渐将大家的需求融进案例中,也希望大家继续在留言区和我们分享你...
  • VBA中有一些有特殊意义的语句,不可以用作变量名称,如:Name,Len,Empty,Local, Currency或者Exit,如果你使用它们作为变量名,将会产生错误。 建议使用富有意义的变量名称:给变量那种可以帮助你记住...
  • Excel VBA编程

    万次阅读 多人点赞 2019-04-11 16:45:51
    文章目录如何创建VBAVBA语法规则声明变量给变量赋值让变量存储的数据参与运算关于声明变量的其他知识变量的作用域特殊的变量——数组声明多维数组声明动态数组其他创建数组的方法数组函数利用UBound求数组的最大索引...
  • 定义格式:Dim 变量 As 变量类型 VBA程序示例: Sub 常量与变量() Const pi=3.1415926 '把pi定义为一个常量 Dim a As Integer '把a定义为一个整数型变量 a=1 a=121 '经过两次赋值,a目前的值是121 End Sub 注意事项...
  • Excel VBA 处理图形图表详解

空空如也

空空如也

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

vba常量声明