VBA中关于dim的简单总结
来源:互联网 发布:晨曦软件视频 编辑:程序博客网 时间:2024/05/18 00:18
楼主是个初学者,在应用vba时遇到了dim方面的问题,查了很多资料后想把关于dim的这点儿知识简单整理出来
首先,从我遇到的问题作为切入点吧, (不得不承认我遇到的错误是很低级的)
具体的情境就不还原了,将问题抽象了出来,代码如下:
运行结果
可以看到integer1被初始化为了空值,integer2被初始化为0
楼主想当然的认为dim的同类型多变量声明方式为 dim 变量名1,变量名2 as type 这种形式,导致了错误
接下来,让我们先查看一下dim的语法
Dim [WithEvents]varname[([subscripts])] [As [New]type] [, [WithEvents]varname[([subscripts])] [As[New]type]] . . .
由此,正确的格式应为 Dim integer1 as Integer, integer2 as Integer
在我之前使用的方法中,integer1会被初始化为一个Variant类型的空值,可以随着对其的操作变成任意类型。integer2则会被正常的初始化为0.
在VBA中我们使用Dim语句进行变量的声明,像大部分编程语言一样,也分为局部与全局声明:在过程中使用即过程级别变量,模块顶部则为模块级别变量。
而Dim的使用方法,上面也提到过了,Dim[WithEvents] varname[([subscripts])] [As [New]type] [, [WithEvents]varname[([subscripts])] [As[New]type]] . . .
你可以在一行中声明多个类型的变量如: Dim string1 as String, integer1 as Integer, single1 as Single,但注意,若你如此 Dim integer1,integer2 as Integer,变量integer1只能会是Variant类型,即相当于Dim integer1 或者Dim integer1 as Variant。
在初始化值方面,Variant 变量被初始化为 Empty,具体类型的变量的各自独立进行初始化,例如String类型被初始化为"",Integer类型被初始化为0
最后提一句吧,网上看到有人说vba可以不声明变量,写出来就用即可。也确实是这样,在没有option explicit的情况下不会产生语法错误,但非常不建议这样做,Dim具体类型变量除了可以提高效率,还可以方便注释、让代码阅读起来更容易。所以还是建议尽可能使用dim声明变量,即便是一个Variant类型。
以下引用一位老师ZhouFfett的说法,证明声明与否在效率上的差别。
注:关于Dim,还涉及到public、private、static、Option Explicit等知识点,了解的太浅,这里就不班门弄斧了。
- VBA中关于dim的简单总结
- VBA中dim,static和public,private的区别
- VB与VBA对于DIM的区别
- caffe中deploy文件中的input_shape的dim:10dim:3dim:32dim:32
- VB.Net 关于类型关键字加方括号进行转义(Dim As [String])的总结
- vb中DIM和PRIVATE的区别
- ASP中set与dim的区别
- asp中dim和set的区别
- ASP中set与dim的区别
- AITD开发笔记:VB中数组的Dim与Redim
- Dim Temp%的意思
- dim
- excel中VBa应用总结
- 关于VBA Excel开发中连接MySQL数据库的问题
- PHP中关于foreach的简单的用法总结
- dim和static的区别
- 关于CRC的简单总结
- 关于SEL的简单总结
- Android stuio Butter Knife配置详解
- MYSQL存储过程实例
- NLTK11《Python自然语言处理》code10 分析语句的含义
- 《Oracle+11g+从入门到精通》学习笔记1
- 怎么用最短时间高效而踏实地学习Python?
- VBA中关于dim的简单总结
- Android向node.js编写的服务器发送数据,并接收请求
- LintCode:M-两个整数相除
- 添加Git 远程仓库
- 使用Python获取Chrome浏览器历史记录
- 动态规划之矩阵连乘法
- Android Oreo系统移植上需要注意的更新
- C++ 数论-最大公约数和最小公倍数
- wireshark 如何识别应用层的协议是什么呢?