2016-04-13 14 views
0

Kämpfen durch die Anwendung einer normalen Excel-Formel in R1C1-Format, so dass ich die Formel in VBA Schleife. Die Frage ist, wie kann ich auf Spalten in anderen Blättern mit der R1C1-Notation verweisen. So in der folgenden Formel:Mischen R1C1 und A1 Notation

ell.Offset(0, 5).FormulaR1C1 = "=IF(LEN(R[]C[-2])>0,(R[]C[-2])*VLOOKUP([R[]C[1]),Core!A:C,3,FALSE)/_ 
VLOOKUP(R[]C[-1],Core!A:C,3,FALSE),R[]C[4])" 

Wie erhalte ich Kern A: C in R1C1-Format? Ich weiß, dass du die beiden Formate nicht mischen kannst, aber ich fürchte, ich kenne die Syntax dafür nicht! Jede Hilfe wird geschätzt!

EDIT:

Sub Expo_dos_Formulas() 

'=============================================================================== 
Sheets("Data_Sheet").Activate 

For Each cell In Range("G5:G500") 
    If cell <> "Error" Then 
     cell.Offset(0, 5).FormulaR1C1 = "=IF(LEN(R[]C[-2])>0,_ 
(R[]C[-2])*VLOOKUP([R[]C[1]),Core!RC1:RC3,3,FALSE)/VLOOKUP(R[]C[-1],_ 
Core!RC1:RC3,3,FALSE),R[]C[4])" 
    End If 
Next 
'=============================================================================== 

End Sub 

Antwort

3

Anstelle von A:C setzen C1:C3:

ell.Offset(0, 5).FormulaR1C1 = "=IF(LEN(RC[-2])>0,(RC[-2])*VLOOKUP(RC[1],Core!C1:C3,3,FALSE)/_ 
VLOOKUP(RC[-1],Core!C1:C3,3,FALSE),RC[4])" 

Wenn R1C1 mit:

  1. die [] eine relativ nicht absolute Referenz bezeichnen. Zum Beispiel bezieht sich auf die Zellen direkt auf der linken Seite.

  2. Wenn absolute Referenzen gewünscht werden, verwenden Sie nicht [] und es wird auf die Zeilen-/Spaltennummer verwiesen. Zum Beispiel gibt R[1]C3 die Zeile direkt unter der referenzierten Zeile zurück, aber in Spalte C. Wenn die referenzierte Zelle A3 ist, würde sie $C4 zurückgeben.

  3. Wenn eine vollständige Spalte oder eine vollständige Zeile gewünscht wird, verwerfen Sie die R oder C. Zum Beispiel C1:C3$A:$C und R[1]:R[2] zurückkehren würde den relativen Bezug der beide Voll Reihen direkt unterhalb der referenzierten Zelle

+0

Dank Scott zurückkehren würde, habe ich eingesteckt, dass in und dann in einer Grundzelle Schleife die Formel gebracht, doch sind "anwendungsdefinierten oder objektdefinierten Fehler" erhalten. Könnten Sie helfen, warum? Ich habe gerade den Code zur Frage hinzugefügt – IIJHFII

+0

Das ist anders, es gab einen Tippfehler in Ihrer ursprünglichen Formel, es gab eine zusätzliche ')' in der Formel. Probiere das aus, was ich gerade gepostet habe. –

+0

Auch ich habe in meinem Kommentar einen schlechten Rat gegeben, daher der Repost in der Antwort. –