Ale*_* K. 38
最安全和最简单的就是循环;
Dim buff() As String
ReDim buff(Len(my_string) - 1)
For i = 1 To Len(my_string)
buff(i - 1) = Mid$(my_string, i, 1)
Next
Run Code Online (Sandbox Code Playgroud)
如果您保证只使用ansi字符,您可以;
Dim buff() As String
buff = Split(StrConv(my_string, vbUnicode), Chr$(0))
ReDim Preserve buff(UBound(buff) - 1)
Run Code Online (Sandbox Code Playgroud)
Cha*_*ams 15
您可以将字符串分配给字节数组(反之亦然).结果是每个字符有2个数字,因此Xmas转换为包含{88,0,109,0,97,0,115,0}的字节数组,
或者您可以使用StrConv
Dim bytes() as Byte
bytes = StrConv("Xmas", vbFromUnicode)
Run Code Online (Sandbox Code Playgroud)
这将为您提供{88,109,97,115},但在这种情况下,您无法将字节数组分配回字符串.
您可以使用Chr()函数将字节数组中的数字转换回字符
Dan*_*iel 10
这是在VBA中执行此操作的另一种方法.
Function ConvertToArray(ByVal value As String)
value = StrConv(value, vbUnicode)
ConvertToArray = Split(Left(value, Len(value) - 1), vbNullChar)
End Function
Sub example()
Dim originalString As String
originalString = "hi there"
Dim myArray() As String
myArray = ConvertToArray(originalString)
End Sub
Run Code Online (Sandbox Code Playgroud)
根据Gaffi 的高尔夫解决方案代码,以下工作有效:
a = Split(StrConv(s, 64), Chr(0))
Run Code Online (Sandbox Code Playgroud)