Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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!!

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 ;)

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

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige