Microsoft Excel - Interactive Average [geschlossen] - Microsoft Excel, VBA, Interactive

Es ist fĂĽr eine Aufgabe. Es wurden Daten fĂĽr Januar bis Juni angegeben, und die Daten fĂĽr Juli sind leer. Nach der Eingabe von Juli wird ein Durchschnittswert erstellt.

Aufgabe ist es, ein Programm zu reparieren, das nach dem EinfĂĽgen von Daten im Juli eine separate Zeile im August erstellt und nach dem EinfĂĽgen von Daten im August eine durchschnittliche Zeile im September erstellt.

Ich frage nicht nach Code. Zeigen Sie mir einfach in die richtige Richtung, wo ich anfangen kann.

Antworten:

1 fĂĽr Antwort â„– 1

Dieser Code erledigt die Aufgabe:

Private Sub Worksheet_Change(ByVal Target As Range) " It is executed each time there is a change on the sheet
Application.EnableEvents = False "Disable detection of further events
Dim wks As Worksheet
Set wks = ActiveSheet "Assign a variable name to the active sheet
Dim months(1 To 12) As String " Creates an array of 12 elements to store month names
months(1) = "january"
months(2) = "february"
months(3) = "march"
months(4) = "april"
months(5) = "may"
months(6) = "june"
months(7) = "july"
months(8) = "august"
months(9) = "september"
months(10) = "october"
months(11) = "november"
months(12) = "december"
totalrows = wks.Cells(Rows.Count, 2).End(xlUp).Row "Row of the last value entered
If totalrows <= 12 Then "If it is inside the defined range of months
wks.Cells(totalrows + 1, 1) = months(totalrows) "Put the next month name
For j = totalrows + 2 To 13 "Cleans the rows below this
wks.Cells(j, 1) = ""
Next j
End If
dataAverage = 0 "calculate the average
For i = 2 To totalrows
dataAverage = dataAverage + wks.Cells(i, 2)
Next i
dataAverage = dataAverage / (totalrows - 1)
wks.Cells(2, 5) = dataAverage "Put the average in the designated cell
Application.EnableEvents = True "Enable the detection of events

ErrorHandler:
Application.EnableEvents = True "Whenever the Sub generates an error executes this line
End Sub

Es funktioniert mit einem Blatt wie diesem:

Bildbeschreibung hier eingeben

Sie können den Code anpassen, um ihn an eine andere Position von Zeilen / Spalten anzupassen.

Öffnen Sie VBA / Macros mit Alt+ F11Doppelklicken Sie auf das Arbeitsblatt, das Sie verwenden möchten, und fügen Sie den Code auf der rechten Seite ein.


Lies jetzt