VBA中字符串是数组吗?
例如,我可以像在 C/C++ 中那样迭代它吗?
做这样的事情:
char myArray[10];
for (int i = 0; i < length; i++)
{
cout << myArray[i];
}
VBA 中的等价物是什么?它的行为并不像我预期的那样。以前从未真正尝试过在 VBA 中操作许多字符串! :)
字符串是一个字节数组,如果您知道字符串的两字节实现(或 Unicode,通常每个字符 2 个字节,但可以更多:并且它总是会这样),您可以迭代它。如果您的字符串源自 VBA,则为 2 字节)。
当我说is,我的意思是:不需要类型转换,这样就可以正常工作:
Public Sub TestByteString()
Dim strChars As String
Dim arrBytes() As Byte
Dim i As Integer
strChars = "The quick Brown Fox"
arrBytes = strChars
Debug.Print strChars
Debug.Print
For i = LBound(arrBytes) To UBound(arrBytes) Step 2
Debug.Print Chr(arrBytes(i)) & vbTab & "Byte " & i & " = " & arrBytes(i)
Next i
arrBytes(0) = Asc("?")
arrBytes(2) = Asc("!")
arrBytes(4) = Asc("*")
strChars = arrBytes
Debug.Print
Debug.Print strChars
Erase arrBytes
End Sub
您的输出将如下所示:
The quick Brown Fox
T 字节 0 = 84
h 字节 2 = 104
e 字节 4 = 101
字节 6 = 32
字节 8 = 113
u 字节 10 = 117
字节 12 = 105
c 字节 14 = 99
k 字节 16 = 107
字节 18 = 32
B 字节 20 = 66
r 字节 22 = 114
o 字节 24 = 111
w 字节 26 = 119
n 字节 28 = 110
字节 30 = 32
F 字节 32 = 70
o 字节 34 = 111
x 字节 36 = 120
?!* 快速棕色狐狸
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)