将字符串的单个字符移动到数组中

时间:2015-10-29 16:05:18

标签: excel excel-vba vba

我的宏的一部分尝试获取字符串并将字符分解为自己的数组值,如下所示:

    'matchName As String is called from the Sub parameter

    Dim matchArray(1 To 30) As Characters
    Dim i As Integer

    i = 1

    While Mid(matchName, i, 1) <> ""

        matchArray(i) = Mid(matchName, i, 1)
        i = i + 1

    Wend

据我所知,这应该完全正常,但我遇到了:

  

运行时错误&#39; 91&#39;:&#34;对象变量或With块变量未设置&#34;。

老实说,我无法弄清楚为什么会这样,并且会喜欢另一双眼睛(或更多!),看看我是否遗漏了什么。

1 个答案:

答案 0 :(得分:0)

以下是如何操作:

Dim matchArray
Dim i As Long

ReDim matchArray(1 To Len(matchName))
For i = 1 To Len(matchName)
    matchArray(i) = Mid(matchName, i, 1)
Next

虽然上述内容完美无缺,但在一行中没有循环更有趣:

myArray = Evaluate("transpose(mid(""" & matchName & """,row(1:" & Len(matchName) & "),1))")