VBA使用字符串作为变量名

时间:2013-11-18 13:45:38

标签: string vba excel-vba excel

我有不同房间测量数据集(不同长度)的工作簿。我需要对每个数据集进行排序。 我的代码找到每个数据集的起始行和结束行,并将它们存储为StartRowRoom1,EndRowRoom1,StartRowRoom2,EndRowRoom2等。

我想像这样在while循环中浏览每个数据集。

Dim StartRowRoom1 As Integer
Dim StartRowRoom2 As Integer
Dim EndRowRoom1 As Integer
Dim EndRowRoom2 As Integer

n = 1

While n < NumberOfRooms
    startRow = "StartRowRoom" & n
    endRow = "EndRowRoom" & n

    With Range(Cells(startRow, 4), Cells(endRow, 4))
        .FormulaR1C1 = "=RC[-2]+RC[-1]"
        #sorting and graph creation
    End With
    n = n + 1
Wend

我的问题是startRow和endRow变量是字符串(“StartRowRoom1”和“EndRowRoom1”,n = 1)。所以它们不能用在Cells()中。我希望他们引用定义为整数的变量。 有没有人有解决方案?

2 个答案:

答案 0 :(得分:1)

这就是数组的用途。

您应该将变量声明为

Dim StartRowRoom(1 to 2) As Integer
Dim EndRowRoom(1 to 2) As Integer

StartRowRoom(1) = [your value here]
StartRowRoom(2) = [your value here]

EndRowRoom(1) = [your value here]
EndRowRoom(2) = [your value here]

然后你可以访问它们

startRow = StartRowRoom(n)
endRow = EndRowRoom(n)

使用n作为索引

答案 1 :(得分:0)

我认为你应该尝试存储StartRowRoom1变量,比如Range类型,并使用.offset()和.end()来获取引用。

然后在你的循环中你不需要细胞(,):

With Range(startRow, endRow) ...