2012-03-27 20 views
4

Ich versuche, den folgenden Code in VBA zu setzen. Idealerweise möchte ich die Formel auf die Spalte H anwenden, wenn Spalte A leer ist. Jede Hilfe wäre willkommen. endPosition ist eine Variable, die den Wert der Zeile # enthält, in der Spalte A leer ist.Excel Formelfehler auf VBA

ActiveCell.Formula = "=SUM(N(FREQUENCY(R[endPosition]C[-1]:R[endPosition]C[-1],R[endPosition]C[-1]:R[endPosition]C[-1])>0))" 

Diese Formel am Ende angelegt wird, wenn die Schleife eine leere Zelle sieht: die Formel korrekt ist Unter der Annahme,

Range("A1").Select 
    beginPosition = 2 'Start from row number 2 
    Do While IsEmpty(ActiveCell.Offset(1, 0)) = False 
    ActiveCell.Offset(1, 0).Select 
    endPosition = ActiveCell.Row 
    Loop 
    endPosition = endPosition + 1 
    Range("H15").Select 
    ActiveCell.Formula = "=SUM(N(FREQUENCY(R[endPosition]C[-1]:R[endPosition]C[-1],R[endPosition]C[-1]:R[endPosition]C[-1])>0))" 
+0

Ich weiß, dass dies nicht der richtige Weg ist. Aber ich versuche Excel zu lernen und daher die dumme Formel. – rvphx

+0

Bitte posten Sie die vollständige Fehlermeldung. Vielen Dank. – bernie

+0

Der Fehler, den ich bekomme, ist "Laufzeitfehler '1004': Anwendungsdefinierter oder objektdefinierter Fehler" – rvphx

Antwort

5

, wenn endPosition eine Variable ist, sollten Sie es nicht in der Zeichenfolge:

ActiveCell.FormulaR1C1 = "=SUM(N(FREQUENCY(R[" & endPosition & _ 
    "]C[-1]:R[" & endPosition & "]C[-1],R[" & endPosition & _ 
    "]C[-1]:R[" & endPosition & "]C[-1])>0))" 
+0

Das hat den Fehler behoben. Ich werde die Positionen korrigieren, damit diese Formel richtig funktioniert. Vielen Dank! – rvphx