excel交流 发表于 2017-9-20 01:16:19

07-如何知道该定义变量为何种类型方法?

这就要根据你的实际需要,再结合各种数据的的范围来看。
      在编写程序的过程中,选择需要存储空间尽量小的数据类型来保存所需要的数据,这是很有必要的,虽然我们可以把变量设为Variant型,但上面我说了,定义变量类型会提升程序的运行速度,这也是VBA提供各种数据类型存储空间的原因。

    该定义变量为哪一种类型?看一看它的长度。
   用生活中的一个实例来说这个问题:
   有一天你上街去买一斤菜油,我们需要选择一个容器来装我们所要买的菜油(相当于声明变量的类型),如果我们没有选择选择容器,上帝可不知道你要买多少斤菜油,他就扔给你一个超级大的水缸,这个水缸无论你要买多少菜油都是可以装得下的。可是携带这样一个水缸上街你会不会觉得太不方便了?用一个水缸来装一斤菜油会不会太浪费了?所以我们得自己选择一个瓶子去装我们的油,一斤油,用一个瓶子刚好合适,当然,如果你只用一个茶杯去装,那也是不行的。
      用数据来打比方,我们需要用变量来保存一个学生某学科考试成绩的分数,那么用Byte数据类型就可以了(它的范围是0——255),如果在这里使用Integer、Long、Single这些数据类型的话,就相当于我们用水桶,水缸去装那一斤菜油,只是对计算机存储空间的浪费,当然,如果你的值的范围超过了Byte的范围,那定义成Byte也是不行的。

      定义变量的类型时,除了考虑长度外,还要考虑变量的值的类型。
      买油的时候不管是用瓶子还是用水缸,反正都能装回来,但是如果你用麻袋能不能装那一斤油回来?
      还是那句话,如果你没有定义变量类型或定义变量类型为Variant,聪明的计算机会先看你打的油是固体还是液体,是液体的话把麻袋扔在一边,给你弄口大缸子。但是如果你自己选择麻袋上街去买油,你还能不能把你的油带回来?
       用数据来打比方,如果你定义了一个变量为Integer型,那你再用把学生姓名的字符串赋给它,行吗?

Sub mysub()
         Dim a As Integer
         a = "我在学习VBA变量"
         MsgBox a
End Sub
将这个过程提制到模块里,按F5运行它,看看是什么结果?尝试修改一下定义的数据类型,看看修改后的运行结果!
页: [1]
查看完整版本: 07-如何知道该定义变量为何种类型方法?