2017-07-06 5 views
0

Ich versuche, Werte mit Spalte J und Tie Breaker in Spalte K mit dem Ergebnis Bestückung in Spalte N rankt. Spalte J & K sind Werte.r1c1 Formel funktioniert nicht

Irgendwie erzeugt es nur einen Wert, wo immer auf meine Zelle gezeigt wird, was bedeutet, wenn ich die VBA-Codes in Zelle C19 ausführen werde, wird nur Wert 1 in C19, nicht aus N6, wo ich die Ergebnisse haben will.

Hier sind meine Codes,

Sub test() 
Dim LR1 As Long 
LR1 = Range("J" & Rows.Count).End(xlUp).Row 
With Range("N6:N" & LR1) 
    ActiveCell.FormulaR1C1 = "=1+SUMPRODUCT(--(R6C10:R33C10<RC[-4]))+SUMPRODUCT(--(R6C11:R33C11<RC[-3]),--(R6C10:R33C10=RC[-4]))" 
End With 
End Sub 

Ich bin nicht sicher, was falsch gelaufen ist. Ich habe versucht, es manuell mit der Excel-Formel und es funktioniert gut, aber nicht meine VBA-Codes.

+0

Nie * benötigt * R1C1-Referenzierung in 15 Jahren Excel/VBA zu verwenden. Was ist los mit A1? –

+0

Wenn mein Excel-Zeiger auf A1 steht, wird nur Wert 1 in A1 aufgefüllt und nichts anderes wird berechnet. – sc1324

+0

Wenn es eine schnellere Methode gibt, lass es mich wissen. danke – sc1324

Antwort

1

ActiveCell ist Ihr Problem.

ändern ActiveCell.FormulaR1C1 = "=1+SUMPRODUCT(--(R6C10:R33C10<RC[-4]))+SUMPRODUCT(--(R6C11:R33C11<RC[-3]),--(R6C10:R33C10=RC[-4]))"

Um .FormulaR1C1 = "=1+SUMPRODUCT(--(R6C10:R33C10<RC[-4]))+SUMPRODUCT(--(R6C11:R33C11<RC[-3]),--(R6C10:R33C10=RC[-4]))"

dass entfernen und es sollte das tun, was Sie wollen.

Sie möchten Ihre Range Referenzen vollständig qualifizieren, so dass sie nicht von der ActiveSheet abhängen. Dadurch erhalten Sie konsistentes Verhalten und Ergebnisse.

+0

danke das löst das Problem, das ich habe. – sc1324

Verwandte Themen