循环遍历行并将该行的一系列值复制到数组中

时间:2013-04-27 12:45:30

标签: arrays vba copy row range

使用VBA时遇到的问题是尝试创建一个循环,从一系列行中复制一系列单元格。

循环必须将同一行和工作表中的一系列单元格复制到数组中。 这适用于一行:

CheckArr = Application.WorksheetFunction.Transpose(Worksheets("DTMs").Range("B2:F2"))

我想创建的是一个为“i”行执行此操作的循环

使用单元格范围内的信息创建数组后,我将其与另一个数组进行比较。比较后,我跳了一行,重复创建数组。像这样:

对于i = 1到ID_cnt ------->'ID_cnt是我想要循环的行的最大范围

CheckArr = Application.WorksheetFunction.Transpose(Worksheets(“sheet12”)。范围(“B(i):F(i)”))

下一步

这不起作用。我不知道如何编写循环,以便使用包含在行“i”的单元格范围(B到F)中的信息创建数组,以及如何在循环中重复此操作。

序列:

1)行(i):复制(B到F)并填写数组

2)检查数组的内容并与另一个数组进行比较

3)跳到行(i + 1):重复过程。

最大跳转量由ID_cnt变量自动设置,该变量计算包含信息的行数。

请帮助我,并提前致谢(对不起英语不好)

2 个答案:

答案 0 :(得分:0)

您可以设置如下所示的单元格范围:

For i = 1 to ID_cnt 

    CheckArr = Application.WorksheetFunction.Transpose(Worksheets("sheet12").Range("B" & i & ":F" & i))

Next 

你也可以做一些更干净的事情,如:

dim myRngStr as string
myRngStr = "B" & i & ":F" & i
    CheckArr = Application.WorksheetFunction.Transpose(Worksheets("sheet12").Range(myRngStr))

答案 1 :(得分:0)

试试这个:

CheckArr = Application.WorksheetFunction.Transpose(Worksheets("sheet12").Range("B" & i & ":F" & i))