VBA字符串是不可变的吗?

我知道.NET(因此VB.NET)字符串是不可变的。但是,我在Excel 2010中使用VBA 7.0。字符串是不可变的吗?我正在做大量的字符串处理,对于少量的字符串,一些(直接)字符串操作是可以的,但我担心它不会扩展-因为从一个字符串移动到另一个字符串的每个额外字符可能会创建另一个字符串实例

它们是不可变的,除非它们表现出可变的行为,否则它们就不是

例如,通过mid$()分配的速度明显快于分配中的普通新字符串

Dim s作为字符串
s=“ABC”
调试。打印s,StrPtr(s)
'/->ABC 122899836
中期美元(s,1,1)=“Z”
调试。打印s,StrPtr(s)
'/->ZBC 122899836
s=“?”&右$(s,1)
调试。打印s,StrPtr(s)
'/-&gt??C 196635748

发表评论