固定string* 7使用的内存比Len(7)的整数less吗?

固定string会比整数使用更less的内存吗?

Public Type MyType UserID As Integer 'All My User IDs are less than 7 integers in length UserID As String * 7 ''Will a Fixed String use less memory than an Integer? End Type 

有没有办法在VBA程序中testing?

该string将使用更多的内存

整数(应按例如Long)为4个字节,string至less为8个。

– 根据评论编辑

lenB(var)会给出它的大小的一个概念。

 Private Type MyType UserID As Integer sUserID As String * 7 End Type Dim x As MyType x.UserID = 123 x.sUserID = "123" Debug.Print LenB(yourType.UserID) Debug.Print LenB(yourType.sUserID) Debug.Print LenB(yourType) 2 14 16 

对于string稍微复杂一些,它不仅仅是一系列内存中的字节,而是存储为具有6字节开销(长度为4,字符为2,终止符为0)的BSTR。

但是你应该为你想存储的数据select正确的types,而不是担心差异 – 在你的例子中,它的12个字节在今天和这个时代是完全不相关的。