Ich schreibe einen Code, der Spalte B nach Namensänderungen durchsucht und dann eine Zeile und Formeln auf der Basis von Variablendaten in Spalten E: J einfügt, wenn sich der Name ändert (neuer Wert) in der Zelle). Einige Namen werden mehr als einmal, aber nacheinander in Spalte B aufgeführt, und ich möchte sie zusammen für eine Summe pro Person gruppieren, aber sie tut derzeit jedes Mal eine Summe, wenn in Spalte B irgendwelche Daten vorhanden sind, nicht nur jedesmal der Name Änderungen. Das andere Problem, das ich habe, ist, dass es die letzte Person nicht summiert, weil es in Spalte B nach dem Nachnamen nichts als leere Zellen gibt, so dass sich nichts ändern wird, um "DANN" zu aktivieren. Ich freue mich über Feedback zu meinem Code. Hier ist, was ich derzeit haben:Zelle speichern, aber leere Zellen ausschließen:
Dim firstrow As Integer
' Start on row 7 to avoid including header
row = 7
firstrow = 1
previous = Range("B7").value
While row < 1000
' Move to next row
row = row + 1
current = Range("B" & row).value
If current <> "" And current <> previous Then
Rows(row).Insert shift:=xlDown
' Formulas for Columns G, I, J, and K
Range("G" & row).Formula = "=SUM(E" & firstrow + 2 & ":G" & row - 1 & ")"
Range("I" & row).Formula = "=sum(H" & firstrow + 2 & ":I" & row - 1 & ")"
Range("J" & row).Formula = WS.Range("G" & row) - WS.Range("I" & row)
Range("K" & row).Formula = WS.Range("J" & row)/WS.Range("G" & row)
row = row
firstrow = row
End If
previous = current
Wend