ChatGPT Case 1 DE

Endergebnis der Anfrage: „Ich benötige ein Excel-Skript. Das Skript durchsucht die Spalte C im Blatt Arkusz1 von der Zeile, die das Wort START enthält, bis zum Schlüsselwort STOP. Die Spalte hat wiederkehrende Zeichenketten. Bei Erkennung einer Zeichenkette, die sich von der vorherigen unterscheidet, ausgenommen die Schlüsselwörter START und STOP, fügt das Skript eine leere Zeile darüber ein. Gleichzeitig berechnet es die Summe der Zellwerte in Spalte G für den auf diese Weise erstellten Block, der durch die gleichen Werte in Spalte C gekennzeichnet ist, und schreibt diesen Wert in die letzte Zeile des Blocks in Spalte N.“

Die Erreichung dieses Ergebnisses dauerte etwa drei Stunden und etwa 12 Iterationen mit ChatGPT, die Frage zu verfeinern, Fehler zu korrigieren, Hilfsfragen zu stellen, usw. Ich muss zugeben, dass die Eindrücke von der Interaktion mit diesem Tool einzigartig sind. Ich würde sagen, es arbeitet besser zusammen als ein Mensch.

  • Was man ihm schreibt, versteht es wörtlich.
  • Es stellt keine dummen Fragen.
  • Es ärgert sich nicht, wenn ich meine Meinung ändere oder erneut nach dem Gleichen frage.
  • Es fragt nicht „warum brauchst du das.“
  • Insgesamt eine „Oase der Geduld“ 🙂

Code:

Sub CreateBlocksAndCalculateSums()
Dim rng As Range
Dim i As Long
Dim sumStart As Long
Dim sumG As Double, sumH As Double
Dim startRow As Long
Dim endRow As Long
Dim lastVal As Variant

‚ Znajdź początek i koniec zakresu
startRow = Application.Match(„START“, ThisWorkbook.Sheets(„Arkusz1“).Range(„D:D“), 0) + 1
endRow = Application.Match(„STOP“, ThisWorkbook.Sheets(„Arkusz1“).Range(„D:D“), 0) – 1

‚ Ustaw zakres od START do STOP w kolumnie C do przeglądania
Set rng = ThisWorkbook.Sheets(„Arkusz1“).Range(„C“ & startRow & „:C“ & endRow)

‚ Ustal początek sumy
sumStart = startRow

‚ Przechowaj ostatnią przetworzoną wartość
lastVal = rng.Cells(1, 1).Value

‚ Przeszukaj zakres od góry do dołu
i = 2
While i <= rng.Rows.Count
‚ Jeżeli napotkasz inny string, wstaw pusty wiersz
If rng.Cells(i, 1).Value <> lastVal Then
‚ Oblicz sumę wartości z kolumny G i dodaj do ostatniego wiersza bloku w kolumnie N
sumG = Application.WorksheetFunction.Sum(Range(„G“ & sumStart & „:G“ & startRow + i – 2))
Cells(startRow + i – 2, „N“).Value = sumG
‚ Oblicz sumę wartości z kolumny H i dodaj do ostatniego wiersza bloku w kolumnie O
sumH = Application.WorksheetFunction.Sum(Range(„H“ & sumStart & „:H“ & startRow + i – 2))
Cells(startRow + i – 2, „O“).Value = sumH
‚ Zresetuj sumStart do aktualnego wiersza
sumStart = startRow + i
rng.Rows(i).EntireRow.Insert
‚ Odśwież zakres po wstawieniu pustego wiersza
Set rng = ThisWorkbook.Sheets(„Arkusz1“).Range(„C“ & startRow & „:C“ & endRow + i)
‚ Zaktualizuj ostatnią wartość
lastVal = rng.Cells(i + 1, 1).Value
End If
i = i + 1
Wend

‚ Oblicz sumę dla ostatniego bloku po wykonaniu pętli
sumG = Application.WorksheetFunction.Sum(Range(„G“ & sumStart & „:G“ & startRow + rng.Rows.Count – 1))
Cells(startRow + rng.Rows.Count – 1, „N“).Value = sumG
sumH = Application.WorksheetFunction.Sum(Range(„H“ & sumStart & „:H“ & startRow + rng.Rows.Count – 1))
Cells(startRow + rng.Rows.Count – 1, „O“).Value = sumH

End Sub

Skontaktuj się z nami

Chcesz dowiedzieć się więcej? Zadzwoń lub wypełnij formularz kontaktowy.

+48 516 125 484