Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellenwert aus Excel in VBA

Zellenwert aus Excel in VBA
24.09.2015 12:56:30
Nikolas
Hey hab mal ne Frage zu der Zusammenarbeit zwischen Excel und VBA:
Wenn ich mein Makro einlese gibt er mir das hier aus:
ActiveCell.FormulaR1C1 = "=R[-36]C[20]"
Range("J49").Select
Steckt hinter der Zellenbenennung ("=R[-36]C[20]") irgendein System, oder ist das pure Willkür? Oder gibt es vielleicht auch noch eine andere Art und Weise eine Zelle in VBA so nutzen? Sowas wie ... = "=A1"?
Vorab schon mal Danke!!

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellenwert aus Excel in VBA
24.09.2015 13:14:17
UweD
Hallo
=[A1] oder
=Range("A1") oder
=Cells(1,1) dabei bedeutet das (Zeile, Spalte)
man sollte aber immer noch Bezug auf das gewünschte Blatt nehmen.
also
= ActiveSheet.Range("A1")
= Sheets("Tabelle1").Cells(1,1) usw.
Gruß UweD

AW: Zellenwert aus Excel in VBA
24.09.2015 13:49:14
Nikolas
Super, hat alles geklappt!
Danke für die Tipps und die aufmunternden Worte ;)

Anzeige
AW: Zellenwert aus Excel in VBA
24.09.2015 13:18:35
yummi
Hallo Nikolas,
als Du dein makro aufgezeichnet hast war bei dir relative Aufzeichnung eingestellt.
das R steht für row und das C für Column
dementsprechend - 36 für 36 Zellen weiter nach oben von der aktuellen aus und 20 spalten weiter nach rechts
siehe hier: http://www.online-excel.de/excel/singsel_vba.php?f=84
Gruß
yummi

Anzeige
'Wenn ich mein Makro einlese...' --> Was ...
24.09.2015 13:23:14
Luc:-?
…macht das denn, Nikolas?
Was du zeigst, entspricht der üblichen Aufzeichnung des Makro-Recorders bei „Mitschnitt“ eines manuellen Formel­Eintrags.
Eine Fml-Aufzeichnung/-Eingabe per VBA in der von dir gewünschten Art erhält man mit ActiveCell.Formula bzw ActiveCell.FormulaLocal (US-Original- bzw lokale Version). Verwendest du dagegen ActiveCell.FormulaR1C1Local erhältst du die alternative lokale Z1S1-Schreibweise (US-Original R1C1). Dass es diese Xl-Einstellung gibt, sollte man als Xl-Guter aber wissen. Folglich ist das auch keine Willkür. Die sitzt bekanntlich eher 40-50 cm vor dem Bildschirm…! ;-]
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Zellenwert aus Excel in VBA
24.09.2015 13:26:30
matthias
Hallo Nikolas,
R1C1 kennst du sicher in Excel unter dem Format Z1S1 (Zeile,Spalte). Ohne die Angabe würde die Formel im A1-Format angegeben werden.
Die eckigen Klammer weisen auf einen relativen Bezug hin. Dh. von der Zelle in der die Formel steht ausgehend 36 Zeilen nach oben, 20 Spalten nach Rechts. Steht die Formel also in Zelle A37, würde sie lauten: "=U1".
Im Gegensatz dazu steht der Absolute Bezug: "=R1C21", was als Formel "=$U$1" ausspuckt.
Um dein A1-Format zu nutzen müsstest du also schreiben:
ActiveCell.Formula = "=U1"
Genau wie in Excel selber, kannst du den Bezug beim A1-Format mit $-Zeichen absolut festlegen. VBA spricht jedoch englisch, damit du die Formeln auf Deutsch eingeben kannst, kann man sich FormulaLocal bedienen.
Bsp.:
ActiveCell.Formula = "=Sum(A1:A10,B10)" (englisch, Trennzeichen Komma)
ActiveCell.FormulaLocal = "=Summe(A1:A10;B10)" (deutsch, Trennzeichen Semikolon)
Dabei lassen sich die R1C1/A1-Formate mit den lokalen Einstellungen kombinieren. Zum Ausprobieren hier ein kleines Makro dazu:
Sub Formeln()
'Formel in Zelle A1 eingeben und Makro ausführen
Range("A2") = "FormulaR1C1:"
Range("B2") = "'" & Range("A1").FormulaR1C1
Range("A3") = "FormulaR1C1Local:"
Range("B3") = "'" & Range("A1").FormulaR1C1Local
Range("A4") = "Formula:"
Range("B4") = "'" & Range("A1").Formula
Range("A5") = "FormulaLocal:"
Range("B5") = "'" & Range("A1").FormulaLocal
End Sub

lg Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige