楼主是个初学者,在应用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的说法,证明声明与否在效率上的差别。

转载于:https://www.cnblogs.com/zhao-shan/p/9151775.html

VBA 中Dim含义相关推荐

  1. vba中dir用法_VBA中DIR用法举例.doc

    VBA中DIR用法举例 VBA中DIR函数用法讲解 1.dir代码演示 先上一段代码,作用是获取某个文件夹下子文件夹和文件的名称 没加注释的代码 Sub 获取文件夹和文件名() Dim str1 As ...

  2. 如何避免在Excel VBA中使用选择

    本文翻译自:How to avoid using Select in Excel VBA I've heard much about the understandable abhorrence of ...

  3. python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...

    大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...

  4. 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用

    大家好,我们今日继续讲解VBA数组与字典解决方案第37讲内容:在VBA中字典的应用.对于字典,也许许多的朋友对此比较陌生,在有的语言里字典也称之为MAP,应用也是比较广泛的. 字典,其实就是一些&qu ...

  5. VB/VBA中实现数据库与文件的存取

    编程完成数据库与文件的数据相互存取 'VB/VBA中实现数据库中的文件存取 '示例数据库为ACCESS数据库,用SQL数据库的话,只需要改连接字符串 ' '********************** ...

  6. vba调用linux shell,调用命令提示符并通过VBA中的Shell Exec执行命令

    我试图在VBA Excel中使用Shell脚本在命令提示符上执行命令.当我在命令提示符下执行此命令时,它通过打印一个数字作为输出.但是当我在脚本中调用相同的命令时,它不会在消息框中显示此数字.调用命令 ...

  7. vba 窗体单选框怎么传回sub_EXCEL表格VBA中函数的日常使用

    在日常工作中,Excel里面很多函数我们都用过,那在VBA中该怎么使用函数达到你的目的呢? 以上图为例, 一.用VBA在F2中计算金额,如果使用公式,那很简单,直接在F2中输入: =B2*C2 在VB ...

  8. sqlyog怎么查找表_VBA代码解决方案第58讲:在VBA中查找指定工作表的实用方法

    大家好,我们今日继续讲解VBA代码解决方案的第58讲内容:在VBA中查找指定工作表的方法.在上一个例子中,我们通过一个自定义函数解决了删除工作表的方法.其实实现目的的方法有很多种,不必要必须有某种办法 ...

  9. c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...

    大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...

  10. VBA中常用的字符串处理函数

    在VBA中处理字符串 分类:ExcelVBA>>常用函数 目录 1 VBA中的字符串 2 VBA中处理字符串的函数 2.1 比较字符串 2.2 转换字符串 2.3 创建字符串 2.4 获取 ...

最新文章

  1. 更新整理本人所有博文中提供的代码与工具(Java,2013.11)
  2. 使用named_mutex实现锁机制
  3. html5如何实现播放下一首,使用HTML5 SoundCloud播放器小部件如何以编程方式跳到另一首曲目而不会导致播放第二不需要的曲目?...
  4. php之time的用法,php中time()与$_SERVER[REQUEST_TIME]用法区别
  5. 信息服务器 iis 5.0,使用IIS 5.0调整Web服务器的艺术与科学(4)
  6. linux驱动位置_Linux驱动程序学习一 (续)
  7. [YOLO] libtorch-yolov3 代码下载
  8. transform 的副作用
  9. 盘阵多路径学习(转)
  10. Linux如何创建一个内核模块,创建你自己的内核模块
  11. 优化理论05----最速下降法、最速下降法思想、python实现
  12. (转)C++的tie()函数
  13. apache log分析
  14. linux 内网共享文件夹_linux局域网文件共享服务器
  15. 最迷你的瑞典大学,如何建立起了影响全球的游戏发展体系
  16. [操作系统] elementary os系统美化插件
  17. 进阶篇:4.1)DFA设计指南:简化产品设计(kiss原则)
  18. 惜我者,我惜之; 冷我者,我弃之
  19. excel组合汇总_Excel汇总20140414
  20. matlab算百人同生日概率

热门文章

  1. 中日海军实力分类比较
  2. python绘制登陆时的卫星云图(TBB)
  3. 电商企业如何利用CRM突出重围?
  4. ME909 ECM拨号上网总结
  5. python自然语言处理第三章:处理原始文本
  6. 一个三非渣本的安卓秋招之路
  7. 明天冬瓜哥与你见面畅谈!不用报名直接来!
  8. 什么是 SEO ??? 对SEO的详细介绍
  9. win10小技巧(初)
  10. 计算机打字速成,计算机汉字输入五笔字型打字速成.pdf