将字符串拆分为字符数组?

mez*_*hic 27 string vba char

如何将VBA字符串拆分为字符数组?

我试过Split(my_string, "")但这没用.

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)


q33*_*r49 9

根据Gaffi 的高尔夫解决方案代码,以下工作有效:

a = Split(StrConv(s, 64), Chr(0))
Run Code Online (Sandbox Code Playgroud)