为了清晰起见,我认为原文太混乱,太长。VBA双环连续和不连续
我试图从名为“文件”的工作表中抓取连续的时间序列数据,通过名为“数据”的工作表上的一系列计算来处理它,复制这些结果并将它们作为静态数据粘贴到非数据表中, “数据”上的连续范围,然后重复该过程,直至处理完所有数据。
过去五天我一直在努力的问题是放置第二个函数。如果我将它嵌入“i”中,它会将每个单独结果写入非连续范围25次。如果我将它放在“我”之外,它将完成“我”,然后只将最后一个结果写入到25个位置中的每一个。
我很确定在这一点上,我使用了错误的结构,我猜“for”循环不是第二个函数的方法,但我对这个很新颖不能真正让我的脑袋缠绕如何实施它否则。我也试图将“n”作为一个数组结构化,但从来没有能够得到调试,并且不确定它是否是正确的方法。
Sub getData()
' Process individual time series
Dim Data As Worksheet, Files As Worksheet
Dim fLastRow As Long, dLastRow As Long
Dim i As Long, n As Long
Application.ScreenUpdating = False
Set Data = ActiveWorkbook.Sheets("Data")
Set Files = ActiveWorkbook.Sheets("Files")
fLastRow = Files.Range("A" & Files.Rows.Count).End(xlUp).Row
dLastRow = Data.Range("F" & Data.Rows.Count).End(xlUp).Row
' Process three column data
Files.Range("A1:C" & fLastRow).Copy
Data.Range("A3").PasteSpecial xlPasteValuesAndNumberFormats
Data.Range("F202:P" & dLastRow).Copy
Data.Range("T202").PasteSpecial xlPasteValuesAndNumberFormats
' Process single column data
For i = 4 To 26
Files.Activate
Range(Cells(1, i), Cells(3509, i)).Copy
Data.Range("C3").PasteSpecial xlPasteValuesAndNumberFormats
Data.Range("F202:P" & dLastRow).Copy
For n = 32 To 296 Step 12 ' <~~ this is the problem. inside or outside "i" doesn't work.
Data.Activate
Range(Cells(202, n), Cells(3511, n)).PasteSpecial xlPasteValuesAndNumberFormats
Next n ' <~~ i know this is the problem just not sure what the answer is.
Next i
' Post processing
Data.Cells.Columns.AutoFit
Application.CutCopyMode = False
Application.ScreenUpdating = True
Data.Activate
Data.Range("A1").Select
End Sub
如果从您的稀疏示例列中外推AR,则从列AF中偏移12列,并且如果重复另有21次你到达KJ栏。如果这个交错是一致的,那么可以使用“对于32到296步骤12接下来”。 – Jeeped 2014-11-04 23:20:08
你是错的。我尝试了一个“步骤”,但无法实现它......我会更深入地探究,看看我能否把它整理出来。感谢您的意见。 – Xcrape 2014-11-04 23:37:40
@在我将“For 32”放入“For i”时,它会将结果写入所有25个位置,然后再继续处理下一批数据 - 这已经让我连续数天受到伤害。我被困在“for”结构中。如何避免嵌套,但仍然获得代码来遍历这两个步骤。 – Xcrape 2014-11-05 05:20:11