在多个工作表中parsing数组

我正在尝试将一张表格中的一系列代号分解为多个表格。 我基本上是试图循环使用“i”variables作为工作表标识符,也是每个工作表中有多less代号的乘数。

任何人都可以发现我在这里做的错误吗? 或者你build议攻击的其他方式?

“BreakdownCount”=用户input的分组大小…在这种情况下为200作为testing。

谢谢!

For i = 1 To BreakdownCount UpperRange = 8 + (i - 1) * 200 LowerRange = 8 + i * 200 MsgBox UpperRange MsgBox LowerRange Worksheets("Data " & i).Range(Cells(8, 2), Cells(207, 2)).Value = Worksheets("Scanner - ALL").Range(Cells(UpperRange, 2), Cells(LowerRange, 2)).Value Next 

您需要限定所有 Range对象与他们的母表。 这包括Range()中的Cells() ():

 For i = 1 To BreakdownCount UpperRange = 8 + (i - 1) * 200 LowerRange = 8 + i * 200 MsgBox UpperRange MsgBox LowerRange Worksheets("Data " & i).Range(Worksheets("Data " & i).Cells(8, 2), Worksheets("Data " & i).Cells(207, 2)).Value = Worksheets("Scanner - ALL").Range(Worksheets("Scanner - ALL").Cells(UpperRange, 2), Worksheets("Scanner - ALL").Cells(LowerRange, 2)).Value Next 

一小短手:

 Dim wsOut as Worksheet With Worksheets("Scanner - ALL") For i = 1 To BreakdownCount Set wsOut = Worksheets("Data " & i) UpperRange = 8 + (i - 1) * 200 LowerRange = 8 + i * 200 MsgBox UpperRange MsgBox LowerRange wsOut.Range(wsOut.Cells(8, 2), wsOut.Cells(207, 2)).Value = .Range(.Cells(UpperRange, 2), .Cells(LowerRange, 2)).Value Next End With