循环通过指定的数组?

时间:2014-06-13 08:57:12

标签: excel vba excel-vba row

我正在尝试将特定行的行高从一个工作表匹配到另一个工作表,如果我只删除带有行列表的所有行并执行For i = 1到200,则此工作正常,但这需要太长时间。我只想匹配几行高,而不是经过1到200之间的所有行。我的代码如下:

Dim y As Double
Dim i As Long
Dim rowlist() As Variant

rowlist = Array(3, 5, 23, 30)

For i = LBound(rowlist) To UBound(rowlist)

y = Worksheets("Development").Rows(i).RowHeight
Worksheets("Final").Rows(i).RowHeight = y

Next i

1 个答案:

答案 0 :(得分:0)

当您设置并使用y时,请使用.Rows(rowlist(i))而不是.Rows(i)

i只是存储数组的索引,而不是值,即

  • i = 0; rowlist(i)= 3
  • i = 1; rowlist(i)= 5
  • i = 2; rowlist(i)= 23
  • i = 3; rowlist(i)= 30

因此,从LBound(rowlist)UBound(rowlist)的循环是正确的,您只需要确保在该循环中使用存储在数组中的值。