爲了清晰起見,我認爲原文太混亂,太長。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