こんにちは、私は91の列を持ち、各列は行8から21(固定)から行を持っています。 91の列には部門ヘッダーが含まれ、行の内容は部門ヘッダーに依存します。列は、列1のC列、列Eの列2、列91列すべてのパターンに従う。私は指定された式
"=SUMIFS('L4 - Data Sheet'!$Q:$Q,'L4 - Data Sheet'!$R:$R,'WF - L4'!BY$5,'L4 - Data Sheet'!$P:$P,$A8,'L4 - Data Sheet'!$A:$A,'WF - L4'!$A$3)"
のネスト化されたループを使用して自動化したいと思いますが、うまくいかないと思います。各列のそれぞれの行範囲を持つ91個の列のセルをハードコーディングするのは非常に退屈な作業です:/これは私が現在行っているハードコードです。Excelの水平データベースにネストされたループ
Sub WFCorp4()
With Sheets("WF - L4 (2)") '91 columns * 2 because there is two different subsectors qty and direct assigned space
'.Range("BY8:BY21").Formula = "=SUMIFS('L4 - Data Sheet'!$Q:$Q,'L4 - Data Sheet'!$R:$R,'WF - L4'!BY$5,'L4 - Data Sheet'!$P:$P,$A8,'L4 - Data Sheet'!$A:$A,'WF - L4'!$A$3)"
'.Range("CA8:CA21").Formula = "=SUMIFS('L4 - Data Sheet'!$Q:$Q,'L4 - Data Sheet'!$R:$R,'WF - L4'!CA$5,'L4 - Data Sheet'!$P:$P,$A8,'L4 - Data Sheet'!$A:$A,'WF - L4'!$A$3)"
'.Range("CN8:CN21").Formula = "=SUMIFS('L4 - Data Sheet'!$U:$U,'L4 - Data Sheet'!$R:$R,'WF - L4'!CM$5,'L4 - Data Sheet'!$P:$P,$A8,'L4 - Data Sheet'!$A:$A,'WF - L4'!$A$3)"
End With
End Sub
これはワークシートで試したネストループコードです。
Sub ShortcutWFCorp4()
Dim lastcol As Long
Dim lastrow As Long
lastcol = Cells(8, Columns.Count).End(xlToLeft).Column
lastrow = Cells(21, "C").End(xlUp).Row
Dim i As Long
Dim j As Long
For i = i + 2 To lastcol
For j = 8 To lastrow
Sheets("WF - L4 (2)").Cells(i, j).Range.FormulaR1C1 = "=SUMIFS('L4 - Data Sheet'!R4C17:R132C17,'L4 - Data Sheet'!R4C18:R132C18,'WF - L4 (2)'!i,'L4 - Data Sheet'!R4C16:R132C16,'L4 - Data Sheet'R4C1,R132C1,'WF - L4(2)'!R3C1)"
Next
Next
End Sub
誰かが助けてくれたら分かりますか?おかげで
添付されていると、おおまかなように見えます。各セルには、私の質問に記された数式があります。私は、qty列の出力を集計するためにネストされたループを使用して自動化したい!そして部署は別の順序で行きます。
外部のForステートメントは 'For i = 3からlastcol step 2' – OldUgly
までですが、代わりにジャンプしますか? @OldUgly – Niva
'i = 3〜lastcolのステップ2の場合は' iは '3,5,7、...'になります。 'Step'を省略すると、インクリメントは1になります。 – OldUgly