excel学习库

excel表格_excel函数公式大全_execl从入门到精通

VBA语言中的变量是否需要事先定义数据类型

首先欢迎众多的朋友来我这个平台,或是学习,或者提出问题,我都欢迎。为了更好的和大家交流,分享知识,我会不定期的集合朋友提出的各种问题,选择其中有代表性的做一期专题,给大家以解答。所以,以后大家问题尽管提,很可能下期就有你提出的问题解答了。当然,由于篇幅有限,不可能面面俱到,没有照顾到的朋友还请谅解。 这期专题共解答有三个问题: 问题一 :如果程序中所有变量,都不事先定义,有什么不好?(VBA) 问题二 :公司如何从中选拔出年龄小于或者等于30岁,或者业绩大于或者等于180万的人员 (EXCEL函数) 问题三 :A列姓名,B列日期,C列当月工资,求所有人分年度工资(2013-2018年) 下面逐一解答: 问题一: 如果程序中所有变量,都不事先定义,有什么不好?(VBA) 对于这个问题,我先要解释4个概念:动态语言、静态语言;动态类型语言、静态类型语言,这几个概念对于初接触程序语言的朋友来说,很是费解。下面看我的介绍: 1、动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时,代码可以根据某些条件改变自身结构。主要动态语言:Object-C、C#、JavaScript、PHP、Python、Erlang。 2、静态语言 与动态语言相对对应,运行时结构不可变的语言就是静态语言。如Java、C、C++。 3、动态类型语言(Dynamically Typed Language) 动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。主要语言:Python、Ruby、Erlang、JavaScript、swift、PHP、Perl。 4、静态类型语言(Statically Typed Language) 静态语言的数据类型是在编译期间(或运行)之前确定的,编写代码的时候要明确确定变量的数据类型。主要语言:C、C++、C#、Java、Object-C。 由上面的讲解可以知道,动态类型语言和动态语言是完全不同的两个概念。动态类型语言,是指在运行期间才去做数据类型检查的语言,说的是数据类型;动态语言,说的是运行是改变结构,是代码结构。 静态类型语言的优缺点: 优点:其结构非常规范,便于调试,方便类型安全; 缺点:为此需要写更多的类型相关代码,导致不便于阅读、不清晰明了。 动态类型语言的优缺点: 有点:在于方便阅读,不需要写非常多的类型相关的代码; 缺点:不方便调试,命名不规范时会造成读不懂,不利于理解等。 很显然VBA是属于静态语言的范畴,其变量时需要定义的,但他的语言类型中有个类型是变体型数据,符号Variant,变体型数据是一种特殊的数据类型,几乎可以用于保存所有其它数据类型的数据。可以简单地理解为:当不知道变量所要表示的数据是什么类型时,就把它定义为Variant。对于数字,此类型数据占位16字节,可以存储DOUBLE范围内任何值;对于文本占位22字节。 那么是不是我们在写程序的时候可以不事先定义就可以呢?或者直接全部定义成Variant就可以呢? 首先,在上述的分析中知道,VB是静态类型语言的范畴,变量理应事先定义。 其次 如果在使用过程中没有事先定义数据类型,变量将定义为Variant类型,而此类型占用的空间较大(16或22字节),这将影响程序的性能。如:整型 Integer,占用两个字节;长整型 Long,占用4个字节;单精度浮点型 Single,占用4个字节;双精度浮点型 Double,占用8个字节.要远比Variant类型的数据占用的内存少。 第三,对于数组,必须要定义范围数组界标的范围,否则程序会报错。 第四,事先声明变量的好处:、 1 可以加速过程的执行。因为VB知道了数据的类型,就会根据数据类型来安排存储所需要的内存。 2 可以使你的代码可理解性增加,因为每个变量都列在了过程的前面。 3 可以预防由于变量拼写错误而导致的错误。VB会根据声明变量的拼写来自动更正变量的名称 4 如果VB不知道你的数据类型,那么分配给变量的是Variant数据类型,占用的内存会增加,影响程序的运行速度。 问题二: 公司想从中选拔出年龄小于或者等于30岁,或者业绩大于或者等于180万的人员 (EXCEL函数) 这个问题不做过多的讲解,请参考下面的截图公式,常看我文章的朋友很容易会理解:问题三: A列姓名,B列日期,C列当月工资,求所有人分年度工资(2013-2018年) 此问题没有清楚的表达要解决的问题的条件,暂不做解答。请读者朋友提问时要写清自己的问题。 好了,三个问题回答完毕。 今日内容回向: 1, 什么是静态类型语言,什么是动态类型语言。 2,静态语言和静态类型语言是否一样? 3 VBA 属于哪类语言的范畴? 4 在写VBA程序时是否可以事先不定义数据类型

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接