Microsoft Excel

Herbers Excel/VBA-Archiv

String-Varablen in Formel

Betrifft: String-Varablen in Formel von: Peter
Geschrieben am: 23.10.2014 14:43:02

Hey Pros,

ich habe ein Verständisproblem ich habe diese Formel die er mir einfügen soll:

Range("F4").Select
ActiveCell.FormulaR1C1 = _

"=WENN(ISTFEHLER(INDEX(" & V1 & "!$A$1:$A$1000;MAX((" & V1 & "!$A$1:$A$1000<>"")*ZEILE(" & V1 & "!$1:$1000))));"";INDEX(" & V1 & "!$A$1:$A$1000;MAX((" & V1 & "!$A$1:$A$1000<>"")*ZEILE(" & V1 & "!$1:$1000))))"


V1 ist ein Wort zb. "Bla" und soll möglichst dann den Sheetnamen enthalten der von V1 ausgelesen wird. Das klappt aber die Formel will leider nicht wie ich will...

Entweder bekomme ich nur V1 angezeigt aber nicht Verknüpft zum Sheet oder es funktioniert gar nichts...

  

Betrifft: AW: String-Varablen in Formel von: Hajo_Zi
Geschrieben am: 23.10.2014 14:48:47

du schreibst FormulaR1C1 also Formel in englisch und R1C1 Schreibweise, das ist bei Deiner Formel aber nicht.

GrußformelHomepage


  

Betrifft: Falls dir Hajos AW nicht den nötigen Denk-... von: Luc:-?
Geschrieben am: 23.10.2014 15:25:43

…Anstoß gegeben haben sollte, Peter,
dann lösche mal das .Select, setze neu .Form und sie dir an, was dir der VBE-Intellisense unter Formula so alles anzubieten hat. Das nachfolgende ActiveCell.FormulaR1C1 kannst du dann weglassen und gleich mit = "…" weitermachen. Wenn's dann immer noch nicht fktioniert, wird's wohl an deiner Fml liegen…
Gruß, Luc :-?


  

Betrifft: AW: Falls dir Hajos AW nicht den nötigen Denk-... von: Daniel
Geschrieben am: 23.10.2014 17:10:52

Hallo
meine vorgehensweise bei dem Problem ist diese:

1. schreibe die Formel ganz normal und funktionsfähig in eine Excelzelle

2. selektiere die Zelle mit der Formel und lass dir im Direktfenster mit folgendem Befehl die Formel anzeigen.
Dabei verwendest du von den vier möglichen Schreibweisen am besten R1C1:
?Replace(Selection.FormulaR1C1, """", """""")
Die Replace-Funktion verdoppelt dir gleich die Anführugngszeichen die zur Formel gehören, so wie es im Code notwendig ist.
Diesen Text kannst du dann kopieren und in den Code einfügen.

3. das Thema Variablen in der Formel löse ich so:
- die Formel wird zunächst in eine Variable geschrieben.
- die Stellen an die die Variable eingefügt werden soll werden durch eine Zeichenfolge gekennzeichnet, die ansonsten in der Formel nicht vorkommt.
- mit Replace wird dann dieser Text durch die Variable ersetzt.
Sieht als Code dann in entwa so aus:

dim FO as string
dim Var as string
FO = "=Sum(xxx!R1C1:R10:R1)
Var = "'" & ActiveSheet.Name & "'"
FO = Replace(FO, "xxx", Var)
Cells(1, 2).FormulaR1C1 = FO
vorallem wenn dieselebe Variable mehrfach in der Formel verwendet wird spart das Aufwand und die Formel ist im Code überschtlicher weil sie nicht jedesmal durch die " & " zerteilt wird.

Gruß Daniel


  

Betrifft: Das wolltest du aber sicher nicht mir mitteilen! von: Luc:-?
Geschrieben am: 23.10.2014 17:47:27

;-]
Gruß, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "String-Varablen in Formel "