Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Application.WorksheetFunction.Median

Betrifft: VBA Application.WorksheetFunction.Median von: Lolaley
Geschrieben am: 11.11.2014 14:45:27

Hallo,
Ich wollte mir gern von untereinandergeschriebenen Daten pro Monat (hier jetzt nur die mit 31 Tagen) die Mediane ausrechnen lassen. Dabei kommt jetzt aber immer die Fehlermeldung:

"Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden"

Ich schätze mal, die Deklarationsvariable ist nicht korrekt dimensioniert. Als Variant funktioniert es aber beispielsweise auch nicht. Was sollte ich nehmen, bzw. was ist hier der Fehler?


Sub Median()

Dim A As Date
Dim Row1, Row2, RowMax    As Integer
  Dim Col1, Col2            As Integer
  Dim sum, Med, MW          As Double
  Dim i, j                  As Integer      'i=Jahr , j=Monat
  Dim ArrTxt                As Variant
  Dim MyArray(1 To 300, 1 To 100) As Variant
  Dim wks1                  As Worksheet
  
Set wks1 = ActiveSheet


RowMax = wks1.UsedRange.SpecialCells(xlCellTypeLastCell).Row
 
For Row1 = 2 To RowMax + 1


    If Month(DateValue(Cells(Row1, 1))) = 1 Or Month(DateValue(Cells(Row1, 1))) = 3 Or Month( _
DateValue(Cells(Row1, 1))) = 5 Or Month(DateValue(Cells(Row1, 1))) = 7 Or Month(DateValue(Cells(Row1, 1))) = 8 Or Month(DateValue(Cells(Row1, 1))) = 10 Or Month(DateValue(Cells(Row1, 1))) = 12 Then
       
       
       MW = Application.WorksheetFunction.Average("B" & Row1 & ":B" & Row1 + 30)
       Med = Application.WorksheetFunction.Median("B" & Row1 & ":B" & Row1 + 30)
       Row1 = Row1 + 31
     
    End If
    
Next Row1
    
       
End Sub

Vielen Dank im voraus!

  

Betrifft: Eine WorksheetFunction fktioniert nicht wie ... von: Luc:-?
Geschrieben am: 11.11.2014 15:02:36

…Fml mit der entsprd Xl-Fkt, Lolaley,
wobei die Xl-Fkt so auch nicht fktionieren würde, denn du übergibst einen AdressText, keinen Bezug! Damit kann weder die Xl- noch die WorksheetFunction etwas anfangen. Dazu würde in der Xl-Fml INDIREKT und in der WorksheetFunction noch Range fehlen.
Gruß, Luc :-?


  

Betrifft: AW: Eine WorksheetFunction fktioniert nicht wie ... von: Lolaley
Geschrieben am: 11.11.2014 15:16:48

Hallo Luc,

Das mit dem Text ist kapiert. Wenn ich jetzt allerdings

MW = Application.WorksheetFunction.Average(.Range(.Cells(Row1, 2), .Cells(Row1 + 30, 2))) 

oder
MV = Application.WorksheetFunction.Median(.Range("B" & Row1 & ":B" & Row1 + 30))

eingebe, sagt xl mir beide male, dass sei ein unzulässiger oder nicht ausreichend definierter Verweis.
Was will es mir damit sagen? Muss ich "Range" oder "Cells" noch irgendwie vordefinieren?


  

Betrifft: Du hast einen Pkt vor Range gesetzt, also ... von: Luc:-?
Geschrieben am: 11.11.2014 15:23:55

…erwartet VBA einen Bezug auf ein zuvor definiertes Worksheet-Objekt, Lolaley,
was du wohl nicht angelegt hast, zB mit einem With objekt … End With-Konstrukt. Ohne Pkt würde sich Range auf das aktuelle Blatt beziehen.
Luc :-?


  

Betrifft: AW: Danke, es funktioniert! von: Lolaley
Geschrieben am: 11.11.2014 15:34:05

Klarer Anfall von auf dem Schlauch gestanden.
Vielen Dank! Jetzt klappt alles...


  

Betrifft: Na, dann iss ja jut...! ;-] Hoffentlich war ... von: Luc:-?
Geschrieben am: 11.11.2014 15:39:05

…zwischendurch kein Brand ausgebrochen… ;-)
Luc :-?