如何在Access VBA中拆分单个单词

时间:2014-01-23 09:57:19

标签: vba ms-access

早上好,

我在VBA遇到了一个问题,虽然很小但很烦人。

我想要做的是拆分给定的String并将其传递给数组;这个数组将是一个字符数组。

我知道Split()功能;它根据给定的分隔符拆分字符串 - 但这最适合具有实际分隔符的字符串 - 我的不是。

所以,例如 - 假设我收到了字符串"123asdf4" - 我将如何将其放入数组中?因此,从上面的例子中 - 数组看起来像这样:

myArray(0) = 1
myArray(1) = 2
myArray(2) = 3
myArray(3) = a
myArray(4) = s
'You get the picture

由于

P.S。我不记得你可以导入哪些库到VBA代码 - 即C,C ++或C#库。有人可以概述它是什么吗?

2 个答案:

答案 0 :(得分:2)

Dim i As Long
Dim str As String, arr() As String

str = "123asdf4" 
ReDim arr(Len(str)-1)

For i = 0 to Len(str)-1
    arr(i) = mid$(str, i+1, 1)
Next i

答案 1 :(得分:1)

SplitByCharacter()函数返回String数组数据类型。此数组由最初传递给函数的字符组成(myStr,即“123asdf4”)。所以现在你的myArr是一个包含8个字符串对象的数组。

Sub Main()

    Dim myStr As String
    myStr = "123asdf4"

    Dim myArr
    myArr = SplitByCharacter(myStr)



    Dim i As Long
    For i = LBound(myArr) To UBound(myArr)
        Debug.Print "pos: " & i, "val: " & myArr(i)
    Next i

End Sub


Private Function SplitByCharacter(s As String) As String()
    ReDim arr(Len(s) - 1) As String
    Dim i  As Long
    For i = 1 To Len(s)
        arr(i - 1) = Mid$(s, i, 1) ' or Right$(Left$(s, i), 1)
    Next i
    SplitByCharacter = arr
End Function