如何在vba中返回变量所分配的内存大小?





vba中有各种变量类型,如Byte、Boolean、Integer、Long等。

不同的变量类型,分配的存储内存大小(字节数)是不一样的。

具体的各种vba的变量类型所分配的内存大小可以见官方帮助文档

比如Byte类型的变量分配的1个字节的存储空间,Long类型的变量分配4个字节的存储空间。

在vba中提供了一个函数可以直接获取不同类型的变量所分配的存储空间,它就是Len函数。

经常使用vba编写代码的肯定都知道Len函数,它一般用于返回字符串变量所包含的字符数。

其实Len函数还有一个作用,就是返回变量所分配的存储空间的大小,以字节为单位。

可以通过以下代码测试:

但是对于以下几类特殊的变量类型,Len返回的值不再是变量所占的存储空间大小:

  1. 对于变长字符串变量,Len返回的是变长字符串变量存储的字符数。
  2. 对于定长字符串变量,Len返回的是定长的字符数。
  3. 对于Variant类型的变量,Len函数把它当做是字符串变量一样对待,也是返回存储的字符数。

可以使用以下的代码测试:

对于用户自定义类型变量,当它的元素是字符串变量或者Variant类型的变量时,Len函数返回的值是这个用户自定义类型变量被写到文件中的大小。

可以用以下代码测试:

分别输出 4 8 14 20。

 

 

 

 

 

打赏
       

发表评论