У меня есть 2 столбца, в столбце B, список с пробелом между ними, числа текста перед пробелом могут варьироваться. Мне нужно вставить сумму диапазона в первой строке текста в столбце рядом с ним.
И мои две попытки vba работают, но потом не работают.
Вариант 1: Works вставит "sum =" диапазон выше с текстом.
Вариант 2: вставляет в нужном месте, но вставляет только «ЛОЖЬ».
Example:
Column B: ColumnC:
Header1 =SUM(B1:B4) eg. the sum of the range before first blank.
Sub1
Sub2
Sub3
"blank"
Header2 =SUM(B6:B8) eg. the sum of the range before first blank.
Sub1
Sub2
"blank"
Sub KSV_Option_1()
Dim KSV_SrchRng As Range, cel As Range, KSV_Contain As String
Set KSV_SrchRng = Range("B1:B99")
For Each cel In KSV_SrchRng
If InStr(cel.Value, "Forsikringspræmie") > 0 Then
KSV_Contain = cel.Value
ElseIf cel.Value <> "" Then
Dim xRg As Range
Dim i, j, StartRow, StartCol As Integer
Set xRg = Range("B1:B99")
StartRow = xRg.Row
StartCol = xRg.Column
For i = StartCol To xRg.Columns.Count + StartCol - 1
For j = xRg.Row To xRg.Rows.Count + StartRow - 1
If Cells(j, i) = "" Then
Cells(j, i).Formula = "=SUM(" & Cells(StartRow, i).Address & ":" & Cells(j - 1, i).Address & ")"
StartRow = j + 1
End If
Next
StartRow = xRg.Row
Next
End If
Next cel
End Sub
Sub KSV_Option_2()
Dim KSV_SrchRng As Range, cel As Range, KSV_Contain As String
Set KSV_SrchRng = Range("B1:B99")
For Each cel In KSV_SrchRng
If InStr(cel.Value, "Forsikringspræmie") > 0 Then
KSV_Contain = cel.Value
ElseIf cel.Value <> "" Then
Dim xRg As Range
Dim i, j, StartRow, StartCol As Integer
Set xRg = Range("B1:B99")
StartRow = xRg.Row
StartCol = xRg.Column
For i = StartCol To xRg.Columns.Count + StartCol - 1
For j = xRg.Row To xRg.Rows.Count + StartRow - 1
If Cells(j, i) = "" Then
cel.Offset(0, 1).Value = Cells(j, i).Formula = "=SUM(" & Cells(StartRow, i).Address & ":" & Cells(j - 1, i).Address & ")"
StartRow = j + 1
End If
Next
StartRow = xRg.Row
Next
End If
Next cel
End Sub