Excel VBA 数组未从循环中填充
Excel VBA array not populating from loop
这是代码。我想要做的是创建一个数组,其中包含一个字符串(名为 "difficultstring")的所有索引位置,其中存在一些空格(该字符串看起来像“文本文本文本...”):
Dim cutarray
cutarray = Array(0)
For spacething = 2 To Len(difficultstring)
If Mid(difficultstring, spacething, 1) = " " And Mid(difficultstring, spacething - 1, 1) <> " " Then
ReDim cutarray(UBound(cutarray) + 1)
cutarray(UBound(cutarray)) = spacething
End If
Next spacething
但出于某种原因,当我稍后尝试使用 cutarray 数组执行某些操作或显示 cutarray 中的值时,它似乎没有任何数字。我检查了 len(cutstring),它返回了 43 的值——这意味着 Excel 试图填充这个字符串,但实际上没有填充任何数字(当我拉 cutstring(0)、cutstring(1) 等时,没有任何显示.
有人可以帮忙吗?非常感谢!!!!!!!
您需要在 ReDim 语句中使用 "Preserve" 命令,就像@Gary 的 Student 所引用的那样。尝试:
ReDim Preserve cutarray(UBound(cutarray) + 1)
这是代码。我想要做的是创建一个数组,其中包含一个字符串(名为 "difficultstring")的所有索引位置,其中存在一些空格(该字符串看起来像“文本文本文本...”):
Dim cutarray
cutarray = Array(0)
For spacething = 2 To Len(difficultstring)
If Mid(difficultstring, spacething, 1) = " " And Mid(difficultstring, spacething - 1, 1) <> " " Then
ReDim cutarray(UBound(cutarray) + 1)
cutarray(UBound(cutarray)) = spacething
End If
Next spacething
但出于某种原因,当我稍后尝试使用 cutarray 数组执行某些操作或显示 cutarray 中的值时,它似乎没有任何数字。我检查了 len(cutstring),它返回了 43 的值——这意味着 Excel 试图填充这个字符串,但实际上没有填充任何数字(当我拉 cutstring(0)、cutstring(1) 等时,没有任何显示.
有人可以帮忙吗?非常感谢!!!!!!!
您需要在 ReDim 语句中使用 "Preserve" 命令,就像@Gary 的 Student 所引用的那样。尝试:
ReDim Preserve cutarray(UBound(cutarray) + 1)