【VBA研究】变量定义的类型和实际赋值类型

作者:iamlaosong

VBA中变量可以先定义后使用,也可以不定义直接使用。如果模块前面加了Option Explicit语句,则变量必须先定义后使用。不过,实验发现,VBA对变量类型没有进行严格的管控,不管哪种情况,定义的类型和实际使用中赋值类型并没有什么关系,也就是说定义为integer的变量同样赋值字符串,反之也然。

这样的结果往往会在程序中产生歧义,导致错误的运行结果。例如下面的语句:

Dim  Scan(3000), BarCode As String

。。。

BarCode = Cells(row2, 5)

If Scan(row1) = BarCode Then

。。。

这时BarCode保存值的类型由单元格的类型决定,特别是单元格的内容为数字时,BarCode保存值的可能是字符,也可能是数字,这很容易混淆,当你用BarCode和其它变量比较时,如果类型不对,即便数字相同,也会不等,所以编程中要特别注意,对这种可能引起混淆的情况,要强制进行转换,防止出错,即:

BarCode = CStr(Cells(2, 5))

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 19:24:31

【VBA研究】变量定义的类型和实际赋值类型的相关文章

C语言变量定义与数据溢出(初学者)

1.变量定义的一般形式为:类型说明符.变量名标识符等:例:int a,b,c;(abc为整型变量) 在书写变量定义时应注意以下几点: (1)允许在一个类型说明符后,定义多个相同类型的变量.各变量之间用","间隔.类型说明符与变量名之间用一个空格间隔. (2)最后一个变量之后必须以":"结尾. (3)变量定义必须放在变量使用之前,一般放在函数体的开头部分. 注:有符号整型遇无符号整型会统一变为有符号整型. 2.整型数据的溢出: #include <stdio.h

【VBA研究】VBA数据类型定义和管控

作者:iamlaosong 数据类型是对同一类数据的统称,如文本.日期.数值等.VBA里的数据类型有:字节型(Byte),整数型(Integer),长整数型(Long),单精度浮点型(Single),双精度浮点型(Double),货币型(Currency),小数型(Decimal),字符串型(文本型)(String),日期型(Date),布尔型(Boolean). VBA对数据类型定义的管控并不强,比如定义成整数型的变量同样可以赋值字符串,但是如果不注意,就会导致逻辑错误. 通过测试发现,如果一

&lt;28&gt;【了解】10-枚举类型介绍及定义+【掌握】11-枚举变量变量定义和使用+【掌握】13-typedef定义新的类型+【掌握】15-宏的概念及无参宏定义方法+【掌握】16-有参宏定义和使用方法+【掌握】17-应用:使用有参宏求最大值+【掌握】18-typedef和#define的区别

[了解]10-枚举类型介绍及定义 枚举类型: C语言提供了一个种类型,这种类型的变量的取值被限定在一定的范围之内了 枚举类型的定义: enum 枚举类型名{ 枚举值1,枚举值2,.... }; 举例: 定义一个变量,保存一周的第几天 enum weekday{ zhouyi,zhouer,zhousan,zhousi,zhouwu ,zhouliu,zhouri }; 定义iPhone手机的颜色 关于枚举类型元素的命名习惯 enum iColor{kIcolorWhite,kIcolorBlac

《Effective C++》之条款26:尽可能延后变量定义式的出现时间

<Effective C++> 条款26:尽可能延后变量定义式的出现时间 只要你定义了一个变量而其类型带有一个构造函数和析构函数,那么当程序的控制流到达这个变量定义式时,你便得承受构造成本:当这个变量离开作用域时,你便得承受析构成本.即使这个变量最终并未被使用,仍需耗费这些成本,所以你应该尽量避免这种情形. 对于"尽可能延后"的理解: 不只应该延后变量多的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初始实参为止.如果这样,不仅能够避免构造(析构

PL/SQL——编程——变量定义

1.变量标量类型(scalar)复合类型(composite)参照类型(reference)lob(large object) --定义一个变长字符串v_ename VARCHAR2(10)--定义一个小数,范围-9999.99~9999.99v_sal NUMBER(6,2)--定义一个小数,并给初始值5.4,:=是plsql的赋值符v_sal2 NUMBER(6,2):=5.4--定义一个日期类型v_hiredate date--定义一个布尔量,不能为空,初始值为falsev_valid B

MySql中的变量定义

MySql中的变量定义 根据mysql手册,mysql的变量分为两种:系统变量和用户变量.但是在实际使用中,还会遇到诸如局部变量.会话变量等概念.根据个人感觉,mysql变量大体可以分为四种类型: 一.局部变量. 局部变量一般用在sql语句块中,比如存储过程的begin/end.其作用域仅限于该语句块,在该语句块执行完毕后,局部变量就消失了. 局部变量一般用declare来声明,可以使用default来说明默认值. 例如在存储过程中定义局部变量: drop procedure if exists

php-环境、变量定义与输出、变量用法

1.php环境 1.1lawp 1.2wamp l: linux  w: windows //系统 a: apache  a: apache //阿帕奇 m: mysql  m: mysql //数据库 p: php p: php //php 2.变量定义与输出 2.1定义与输出都得带$ 2.2 定义:$name="xxx"; 输出: echo $name; //输出变量 var_dump($name); //输出数组,并打印类型与长度 print_r($name); //输出数组 3

c++ 变量 定义 声明

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益) 变量的声明有两种情况: 1.一种是需要建立存储空间的.例如:int a 在声明的时候就已经建立了存储空间. 2.另一种是不需要建立存储空间的. 例如:extern int a 其中变量a是在别的文件中定义的. 前者是“定义性声明(defining declaration)”或者称为“定义(definition

PHP变量定义和输出

php在定义变量和输出变量时,前面必须加$ 变量名区分大小写,函数不区分大小写,写代码时最好都是用小写,这样就不会出错了 变量定义: $name="小明"; 变量输出: echo($name);  //输出变量 var_dump($name);  //输出数组,打印类型和长度 print_r($name);   //输出数组 utf-8的编码下,一个中文字三个字符 gbk的编码下,一个中文二个字符 1 <!doctype html> 2 <html> 3 <