如何将VBA字符串拆分成字符数组?
我尝试过Split(my_string, "")
,但这不起作用。
发布于 2012-11-02 20:58:40
最安全最简单的就是循环;
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
如果你保证只使用ansi字符,你可以;
Dim buff() As String
buff = Split(StrConv(my_string, vbUnicode), Chr$(0))
ReDim Preserve buff(UBound(buff) - 1)
发布于 2012-11-02 22:10:06
您可以将字符串分配给一个字节数组(反之也是可能的)。结果是每个字符对应2个数字,因此Xmas转换为包含{88,0,109,0,97,0,115,0}的字节数组
或者,您可以使用StrConv
Dim bytes() as Byte
bytes = StrConv("Xmas", vbFromUnicode)
这将给你{88,109,97,115},但在这种情况下,你不能将字节数组分配回一个字符串。
可以使用Chr()函数将字节数组中的数字转换回字符
发布于 2012-11-02 20:58:15
这是在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
https://stackoverflow.com/questions/13195583
复制相似问题