2016-10-04 4 views
0

Ich vergleiche zwei Spalten und zeigt die Unterschiede in einer anderen Spalte. Ich habe eine Excel-Formel, die funktioniert, aber ich muss es in einem VBA-Makro verwenden. Wenn ich versuche, es im Makro zu verwenden, bekomme ich den Fehler "Laufzeitfehler: '1004': Anwendungsdefinierter oder objektdefinierter Fehler". Wie kann das behoben werden?Excel Formel innerhalb VBA 1004 Fehler

Sub Macro2() 

    Range("B2:B60").Formula = "=IF(COUNTIF($A:$A,$B2)=0, B2, "")" 

End Sub 

Antwort

1

Anführungszeichen innerhalb eines Strings müssen verdoppelt-up werden, so anstelle von

Range("B2:B60").Formula = "=IF(COUNTIF($A:$A,$B2)=0, B2, "")" 

Verwendung

Range("B2:B60").Formula = "=IF(COUNTIF($A:$A,$B2)=0, B2, """")" 

aber bitte beachten Sie, dass dies einem kreisförmigen Referenzfehler geben, wie Zelle B2 (usw.) referenziert sich selbst.

Vielleicht beabsichtigen Sie, den neuen Wert in Spalte C zu schreiben? Wenn ja, verwenden Sie

Range("C2:C60").Formula = "=IF(COUNTIF($A:$A,$B2)=0, B2, """")" 
+0

Danke, dies ändert nur die B-Spalte zu Nullen. Weißt du, wie man das umgehen kann? In Excel funktioniert die Formel wie erwartet. – kit

+0

@kit - der Code schreibt die Formel einfach in die Excel-Zelle. Wenn Sie also die Formel manuell in Excel eingegeben haben, erhalten Sie auch einen zirkulären Referenzfehler. – YowE3K

+0

Ah danke, gelöst! Schuljungenfehler. – kit