2016-10-10 1 views
0

Ich versuche, verschiedene Blätter in einem Makro zu referenzieren, ohne sie explizit zu referenzieren, damit das Makro mit jedem Blattbereich kompatibel ist. Ich habe glücklicherweise (ActiveSheet.Index +/- 1) benutzt, um zwischen Blättern zu wechseln, aber wenn es darum geht, Formeln einzugeben, kann ich nichts finden, was mir bisher helfen könnte.Verschiedene Blätter in VBA dynamisch referenzieren

Der Weg, den ich so weit gegangen, nach unten haben, ist mit einem Makro ich gefunden: http://www.cpearson.com/excel/sheetref.htm

, die den Namen des nächsten Blattes verweist, wenn in einer Zelle eingegeben. z.B. = NextSheetName() gibt 'Sheet 2' zurück.

Ich kombiniere das Ergebnis mit einem! Markieren und definieren Sie es als nexxxsheet. So

wenn ich geben Sie die Formel

ActiveCell.FormulaR1C1 = "=" & nexxxtsheet & " "A1" 

ich die Zelle erwarten, dass die Formel haben: = 'Name des nächsten Blatts' A1

jedoch it = 'Name des nächsten Blatts' zurück! 'A1'

Der Unterschied ist die Anführungszeichen um A1 - die Formel nutzlos. Ich bin der VBA ziemlich neu und habe keine Ahnung, warum das passiert, und ich bin mir ganz sicher, dass die Methode, die ich verwende, um Blätter ohne direkten Bezug zu wechseln, aus Mangel an einem besseren Begriff eher Crackhouse-Stil ist. Ich bin sehr offen für Vorschläge, wie ich besser zwischen Blättern wechseln sollte, oder Korrekturen, um meine Formel nützlich zu machen.

Vielen Dank!

+1

Definieren Sie "Dim nexxtsheetSheet As String", stellen Sie es 'nexxtsheet =" Sheet2 "' (zum Beispiel), und die Verwendung der 'Formel' (nicht 'FormulaR1C1') wie:' ActiveCell.Formula = "=" & nexxtsheetheet & "!" & "A1" '. Denken Sie daran, es ist besser, ActiveCell zu vermeiden. –

+0

Vielen Dank für Ihre Hilfe - als ich neu war, fragte ich mich, ob Sie erklären könnten, was der Unterschied zwischen Formel und Formel R1C1 ist? –

+2

@LukasLjungstrom R1C1 ist eine weitere Möglichkeit, Zellen zu referenzieren (nach ihrer ** R ** ow- und ** C ** -Ordnungsnummer). Zum Beispiel ist R2C3 die Zelle, die normalerweise als C2 bekannt ist. '.FormulaR1C1' wird verwendet, um die Formel mit diesen Referenzen zu setzen (Excel konvertiert sie danach), so dass A1 nicht als Zellreferenz verstanden wird. Wenn Sie nach dem Referenzstil R1C1 suchen, finden Sie viele Informationen. – arcadeprecinct

Antwort

2

mit "Formel", nicht "FormelR1C1", es funktioniert für mich. Außer wenn das Zellenformat Text ist, müssen Sie es zuerst ändern

+0

Vielen Dank für Ihre Hilfe, es hat funktioniert! –

+1

@LukasLjungstrom sollten Sie diese Antwort akzeptieren. –

Verwandte Themen