あなたが持っているループの数を考えると、出力行にカウンタを使用するほうが良いでしょう。
またOutputRow
Dim FirstPlan As Long: FirstPlan = 0
Dim LastPlan As Long: LastPlan = 5
Dim Plan As Long
Dim FirstArea As Long: FirstArea = 0
Dim LastArea As Long: LastArea = 6
Dim Area As Long
Dim FirstRow As Long: FirstRow = 2
Dim LastRow As Long: LastRow = 10
Dim myRow As Long ' Avoid "Row" as a variable name
Dim OutputRow As Long
OutputRow = 2 'Specify first row to be written to
'List out all areas for all plans
For Plan = FirstPlan To LastPlan
'List out all areas within a plan
For Area = FirstArea To LastArea
'List out one Area
For myRow = FirstRow To LastRow
'I'm guessing at this line
Sheets("S").Cells(OutputRow, "A").Value = _
Sheets("S").Cells(Plan - FirstPlan + 2, "AD").Value
Sheets("S").Cells(OutputRow, "B").Value = _
Sheets("S").Cells(Area - FirstArea + 2, "AE").Value
'I'm guessing at this line
Sheets("S").Cells(OutputRow, "C").Value = _
Sheets("S").Cells(myRow - FirstRow + 2, "AF").Value
'Set up ready for the next row to be written
OutputRow = OutputRow + 1
Next
Next
Next
はそれが必要とされるたびに計算することができます:あなたは、ループの制御フローに使用されていない場合は
Dim FirstPlan As Long: FirstPlan = 0
Dim LastPlan As Long: LastPlan = 5
Dim Plan As Long
Dim FirstArea As Long: FirstArea = 0
Dim LastArea As Long: LastArea = 6
Dim Area As Long
Dim FirstRow As Long: FirstRow = 2
Dim LastRow As Long: LastRow = 10
Dim myRow As Long ' Avoid "Row" as a variable name
Dim OutputRow As Long
'List out all areas for all plans
For Plan = FirstPlan To LastPlan
'List out all areas within a plan
For Area = FirstArea To LastArea
'List out one Area
For myRow = FirstRow To LastRow
OutputRow = ((Plan - FirstPlan) * (LastArea - FirstArea + 1) + _
(Area - FirstArea)) * (LastRow - FirstRow + 1) + _
(myRow - FirstRow) + 2
'I'm guessing at this line
Sheets("S").Cells(OutputRow, "A").Value = _
Sheets("S").Cells(Plan - FirstPlan + 2, "AD").Value
Sheets("S").Cells(OutputRow, "B").Value = _
Sheets("S").Cells(Area - FirstArea + 2, "AE").Value
'I'm guessing at this line
Sheets("S").Cells(OutputRow, "C").Value = _
Sheets("S").Cells(myRow - FirstRow + 2, "AF").Value
Next
Next
Next
を、で次の例を実行してみてください空のワークシート:
Dim colA As Long, colB As Long, colC As Long
Dim r As Long
With ActiveSheet
For colA = 11 To 12
For colB = 21 To 23
For colC = 31 To 34
r = r + 1
.Cells(r, "A").Value = colA
.Cells(r, "B").Value = colB
.Cells(r, "C").Value = colC
Next colC
'The following statement will be executed AFTER processing colC as 34
Next colB
'The following statement will be executed AFTER processing colB as 23
Next colA
'The following statement will be executed AFTER processing colA as 12
End With
表示あなたのデータ。画像で十分でしょう。 – Masoud
こんにちはマサウッド、どのように写真を追加しますか?ありがとう:) – JBB
https://meta.stackexchange.com/questions/83096/how-to-place-an-image-in-a-stack-overflow-question – Masoud