VB中不支持指针数据类型,相应的VBA也不支持指针数据类型,因此也没有类似于C语言中的地址操作符&,但是仔细研究后,VBA还是支持一些地址操作的。这里介绍两种函数,Varptr(),Strptr()。Varptr()返回一个变量(字符串变量除外)的首地址,Strptr()返回一个字符串变量的首地址。
代码段:
Dim aa As Integer
Dim bb As Integer
aa = 9
bb = 86
Debug.Print VarPtr(aa)
Debug.Print VarPtr(bb)
Dim cc As String
Dim dd As String
cc = "123456"
dd = "abc"
Debug.Print StrPtr(cc)
Debug.Print StrPtr(dd)
运行结果:
1701074
1701072
149230500
149300420
从结果中可以看出,整形变量是连续存储的,字符串变量不是连续存储的,这也很好理解,因为字符串变量是变长。