2013-06-22 117 views
1

我想使用循环运行一个VBA应用程序,并使用名称取决于我在循环中的位置的变量。特别是像VBA循环中的变量

Dim i As Integer 
i = 1 
Dim varname() As String 
while i < 50 
varname(i) = asdasd 
i = i + 1 
Wend 

不知何故它无法读varname(i)或其他。它报告下标超出范围。
我不知道这个问题是什么,有人可能会帮我吗?

回答

2

您需要首先为阵列提供容量。

Sub max() 

Dim i As Integer 
i = 1 

Dim varname() As String 
ReDim varname(49) '<---- There 

While i < 50 
varname(i) = asdasd 
i = i + 1 
Wend 


End Sub 

这是VBA数组一个很好的资源: http://msdn.microsoft.com/en-us/library/office/aa164778(v=office.10).aspx

+0

没关系啊。我可以在不破坏现有变量的情况下更新ReDim吗?因为在我的实际代码中的维度将取决于一些结果。所以在开始时我不知道我需要的最终变量数量。 – ThomasMS

+0

是的,在那里使用的命令将是'ReDim Preserve'' – mango

+0

我认为你可以在不需要'ReDim'的情况下使用'Dim varname(49)作为String'。 –