Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
292to296
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
292to296
292to296
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel zuweisen per VBA / Syntaxfehler

Formel zuweisen per VBA / Syntaxfehler
13.08.2003 08:23:25
Rüdiger
Folgende Formel bekomme ich per VBA nicht gebacken, wer weiß wie die richtige Syntax lautet, der Fehler lautet "Erwartet: Anweisungsende" und der Cursor springt dann beim Debuggen zum Semikolon

meintab.Cells(19,6).formulaR1C1 = "=IF(LEN(RC[-17])-LEN(SUBSTITUTE(RC[-17],";",""))=0,"",TRIM(MID(RC[-17],FIND(";",RC[-17])+1,LEN(RC[-17])-FIND(";",RC[-17]))))"

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel zuweisen per VBA / Syntaxfehler
13.08.2003 09:00:43
sergiesam
Hi
du musst die " in der Zeichenkette verdoppeln, da ja sonst die Formel abgeschlossen wird.

"=IF(LEN(RC[-17])-LEN(SUBSTITUTE(RC[-17],"";"",""""))=0,"""",TRIM(MID(RC[-17],FIND("";"",RC[-17])+1,LEN(RC[-17])-FIND("";"",RC[-17]))))"

Sam


AW: Formel zuweisen per VBA / Syntaxfehler
13.08.2003 09:08:04
UDF
Hallo Rüdiger,

also in der Formel stimmt so einiges nicht.

FormularR1C1 bezieht sich ja immer auf die Adresse der Formel, die gerade angesprochen wird.
In Deinem Beispiel Cells(19, 6) oder Range("F19").
Durch RC[-17] würde die aktuelle Spalte -17 angesprochen. Das wäre dann Cells(19, -11) oder Range("??19")

Das ist erstmal der erste Fehler, der noch nicht auffällt, weil Du zeitgleich deine Anführungszeichen nicht der Excel-/VBA-Syntax eingefügt hast.

Bezogen darauf, dass sagen wir mal nicht (Cells(19, -11) angesprochen werden soll, sondern sagen wir mal Cells(2, 6) also "F2" dann sähe Deine Formel korrigiert so aus.

meintab.Cells(19,6).FormulaR1C1 = _
"=IF(LEN(R[-17]C)-LEN(SUBSTITUTE(R[-17]C,"";"",""""))=0,"""",TRIM(MID(R[-17]C,FIND("";"",R[-17]C)+1,LEN(R[-17]C)-FIND("";"",R[-17]C))))"

Neben FormulaR1C1, welches der Makro-Rekorder aus bestimmten Gründen *1 immer benutzt, kannst Du auch die folgenden Formel-Varianten benutzen:

.Formula --> Englische Formel
.FormulaLocal --> Deutsche Formel, falls kein anderes Land gewählt.

Es erübrigt sich, dass man die Deutsche Formel nur ansprechen sollte, wenn sichergestellt ist, dass keine Englische Excel-Version mit der Mappe arbeiten wird.

Ich hoffe, dass Dir das weitergeholfen hat.

Gruss
Markus

*1 Beim Aufzeichnen von Makros, welche z.B. eine bestimmte Formel in eine Zelle schreiben sollen, anschliessend mit Pfeil nach unten in die nächste Zeile wechseln sollen könnte man den Makro-Rekorder nicht anwenden, wenn dieser immer feste Zellbezüge über .Formula ansprechen würde. Daher die .FormulaR1C1-Geschichte vom Makro-Rekorder.


Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige