我的宏的一部分尝试获取字符串并将字符分解为自己的数组值,如下所示:
'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;。
老实说,我无法弄清楚为什么会这样,并且会喜欢另一双眼睛(或更多!),看看我是否遗漏了什么。
答案 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))")