Im Wesentlichen sage ich, beginnen Sie mit dem Durchschnitt aller 4 Semester, wenn Sem 4 Durchschnitt ist "0" oder hat einen Fehler # div/0 dann einfach sem nehmen 1-3 Mittelwerte, wenn Sem 3 avg 0 oder # div/0 ist dann nur Sem 1-2 Durchschnitt, usw.Behalten Sie einen gleitenden Durchschnitt von einem GPA ohne einen div/0 Fehler
Ich habe es zu einem Punkt, wo ich die Fehlermeldung bekommen "nicht in der Lage, den Durchschnitt zu bekommen Eigenschaft für die Arbeitsblattfunktionsklasse. "
Sub sem1avg()
If w = 0 Then
Worksheets("Sheet1").Range("H1") = "N/A"
ElseIf w > 0 Then
Application.WorksheetFunction.Average (Range("B2:B10"))
End If
End Sub
Sub sem2avg()
If x = 0 Then
Call sem1avg
ElseIf x > 0 Then
Worksheets("Sheet1").Range.cell(H1) = _
Application.WorksheetFunction.Average(B11, B23)
End If
End Sub
Sub sem3avg()
If y = 0 Then
Call sem2avg
ElseIf y > 0 Then
Worksheets("Sheet1").Range(H1) = _
Application.WorksheetFunction.Average(B11, B23, E11)
End If
End Sub
Sub sem4avg()
Dim w As Long
Dim x As Long
Dim y As Long
Dim z As Long
w = Worksheets("Sheet1").Range("B11")
x = Worksheets("Sheet1").Range("B23")
y = Worksheets("Sheet1").Range("E11")
z = Worksheets("Sheet1").Range("E23")
If z = 0 Then
Call sem3avg
ElseIf z > 0 Then
Worksheets("Sheet1").Range("H1") = _
Application.WorksheetFunction.Average("B11, B23, E11, E23")
End If
End Sub
Wow, hier viel los. Gute erste Anstrengung. Wenn Sie andere Subs aufrufen, müssen Sie Argumente übergeben. 'Wenn y = 0 Then' wird nicht funktionieren, wenn Sie es nicht bestehen. Ich lasse Sie erforschen, wie man Argumente übergibt^_^ – findwindow
Muss dies in VBA getan werden? Könnten Sie einfach '= Averageif' Funktion verwenden? – gtwebb
Sie scheinen verwirrt darüber zu sein, wie Bereiche im Code verwendet werden. Sie können nicht einfach die Adresse des Bereichs in den Code eingeben. Der richtige Weg ist der in 'sem4avg' (' Worksheets ("Sheet1") verwendete Bereich. Bereich ("B11") ') – litelite