У меня есть фрагмент кода, в котором я суммирую ячейку «K6» на каждом листе рабочей книги, добавляя основную, называемую «Данные». Однако он жестко запрограммирован, и я хотел бы иметь возможность его зациклить. Либо это, либо установление формулы, чем ее расширение. Я думаю, что будет легче понять, о чем я говорю, посмотрев на код
Это то, что у меня уже есть
`Sub SumSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Data" Then
SumTotal = SumTotal + ws.Range("K6").Value
SumTotal2 = SumTotal + ws.Range("K7").Value
SumTotal3 = SumTotal + ws.Range("K8").Value
SumTotal4 = SumTotal + ws.Range("K9").Value
End If
Next
Sheets("Data").Range("A6").FormulaR1C1 = SumTotal
Sheets("Data").Range("A7").FormulaR1C1 = SumTotal2
Sheets("Data").Range("A8").FormulaR1C1 = SumTotal3
Sheets("Data").Range("A9").FormulaR1C1 = SumTotal4
End Sub'
Этот фрагмент кода работает так, как я хочу, но было бы намного проще, если бы я мог найти способ его зациклить. Или, может быть, установить SumTotal как функцию и расширить его, как в обычном Excel.
Sub SumSheets()
Dim ws As Worksheet
Dim i As Integer
Dim j As Integer
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Data" Then
SumTotal = SumTotal + ws.Range("K6").Value
SumTotal2 = SumTotal + ws.Range("K7").Value
SumTotal3 = SumTotal + ws.Range("K8").Value
SumTotal4 = SumTotal + ws.Range("K9").Value
For i = SumTotal To SumTotal4
For j= 6 To 10
Cells(j,1).Value = i
Next j
Next i
End If
Next
End Sub'
Результат с циклом For, который я пробовал, состоит в том, что он помещает значение SumTotal4 только в ячейки с 6 по 10. Я предполагаю, что это потому, что я недостаточно хорошо определился.