Собственно, ваш вопрос непонятен. Логика моего кода
Looping все строки между StartRow и lastRow
И найти пустую ячейку (# N/A).
Если найдено, добавив значения всей ячейки выше этой ячейки и установив общее количество этой ячейки.
Но добавление ежеквартально. И если непрерывные клетки обнаружены, установите 0.
Средства:
Если StartRow = 1 и lastRow = 11, пустые ячейки 5, 10 и 11.
Таким образом, общее значение из строки 5 ячейки добавление выше 4 ячейка (1 + 2 + 3 + 4) и
общее значение из ячейки строки 10 также добавляет выше 4 соты (6 + 7 + 8 + 9).
И общее значение из ячейки строки 11 равно 0. Не знаю, что делать с логикой.
Я думаю, что даю правильный ответ. Я уже тестировал код. Это отлично работает для меня. Если это не для вас, дайте мне знать. Вот код:
Public Sub findTotal()
Dim startRow, lastRow As Long
Dim row, innerStart As Long
With Sheets("Budget")
'Set start row
startRow = 1
innerStart = startRow
'last row must be last blank row for add all cell above from that
lastRow = 35
'Looping all row between startRow and lastRow
For row = startRow To lastRow Step 1
'Loop until blank
If .Range("N" & row).Text = "#N/A" Then
If row - startRow > 0 And row <> innerStart Then
'Set total of above cell to blank cell
.Range("N" & row) = WorksheetFunction.Sum(.Range("N" & row - 1, "N" & innerStart))
'Set next start row for adding next blank cell
innerStart = row + 1
Else
'Set 0 for continuous cells
.Range("N" & row) = 0
'Here, if you want to set above total, you can use as follow:
'.Range("N" & row) = .Range("N" & row - 1)
End If
End If
Next row
End With
End Sub
Я не очень ясно говорит об этом _find пустую ячейку и добавить все ячейки выше этой пустой клетки, а также разместить сумму на it_ - добавить все значения из выше пустой ячейки, а также добавить сумму?!? также, ссылаетесь ли вы на ячейки, содержащие «# N/A», как пустые? что относительно верхних пустых ячеек, без значений выше них? –
Да, я имею в виду # N/A как пустую ячейку. Мне нужно найти # N/A/пустую ячейку, затем добавить все значения перед ним (от 27 500 до 10 512.50) и поместить сумму в ячейку # N/A/empty и наоборот – Z9z9z9