Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1304to1308
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

Formula und Variable

Formula und Variable
22.03.2013 16:57:31
WalterK
Hallo zusammen,
So sieht ein Teil meines Codes aus und er funktioniert auch:
Dim wksQ1 As Worksheet
Set wksQ1 = Worksheets(ActiveSheet.Cells(6, 3).Value)
wksQ1.Range("DA2").Formula = "=CONCATENATE('LK2008'!RC[-104]&"" ""&'LK2008'!RC[-103])"
Ich hätte aber gern, dass in Formula anstatt 'LK2008' die Variable wksQ1 steht.
Einer meiner Versuche lautete:
wksQ1.Range("DA2").Formula = "=CONCATENATE('" & wksQ1 & "'!RC[-104]&"" ""&'" & wksQ1 & "'!RC[-103])"
Bitte um Hilfe für die richtige Schreibweise!
Besten Dank und Servus, Walter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formula und Variable
22.03.2013 17:01:52
Luschi
Hallo Walter,
ersetze in Deinem Versuch wksQ1 gegen wksQ1.Name
Gruß von Luschi
aus klein-Paris

AW: Formula und Variable
22.03.2013 17:02:20
Hajo_Zi
Hallom Walter,
"=CONCATENATE('" wksQ1.name & "'!RC[-104]&"" ""&'LK2008'!RC[-103])"

Besten Dank an beide Helfer, funktioniert!
22.03.2013 18:38:39
WalterK
Servus, Walter

AW: Formula und Variable
22.03.2013 18:49:33
Daniel
Hi
deine Zellbezüge in der Formel sind in der Form R1C1 geschrieben, daß musst du VBA auch so _ mitteilen:

wksQ1.Range("DA2").FormulaR1C1 = "=....."
die Zellbezüge beziehen sich auf die gleiche Tabelle, in der auch die Formel geschrieben wird, _ es ist beidesmal wksQ1. aus diesem Grund ist es nicht erforderlich, den Tabellenblattnamen vor den Zellbezügen anzugeben.

wksQ1.Range("DA2").Formula = "=CONCATENATE(RC[-104]&"" ""&RC[-103])"
in dem Fall ist es wahrscheinlich auch sinnvoller, die Spaltenbezüge absolut zu setzen, das _ macht die Formel in R1C1 kürzer und übersichtlicher:

wksQ1.Range("DA2").Formula = "=CONCATENATE(RC1&"" ""&RC2)"
solltest du tatsächlich Variablen in die Formel einspielen müssen, dann würde ich dir empfehlen, daß über die Replace-Methode zu machen. Dann brauchst du die Formel nicht in verschiedene fixe und variabele Bestandteile zu zerhacken und damit wird sie übersichtlicher und erleichtert dir die Arbeit, falls du sie nochmal ändern musst.
nochmal an deinem Beispiel:
Schlecht:

wksQ1.Range("DA2").FormulaR1C1 = "=CONCATENATE('" & wksQ1.Name & "'!RC[-104]&"" ""&'" & wksQ1.Name & "'!RC[-103])"

besser, weil deutlich übersichtlicher (vorallem wenn die gleiche Variable an mehreren Stellen _ in der Formel eingefügt werden muss:

MeineFormel = "=CONCATENATE('TBxxx'!RC[-104]&"" ""&'TBxxx'!RC[-103])"
MeineFormel = Replace(MeineFormel, "TBxxx", wksQ1.Name)
wksQ1.Range("DA2").FormulaR1C1 = MeineFormel
gruß Daniel

Anzeige
AW: Formula und Variable
22.03.2013 18:52:54
Daniel
und nochwas:
so wie du hier arbeitest, ist Concatenate überflüssig, das machst du ja schon mit den &-Zeichen.
entweder so:
Range(...).Formular1c1 = "=Concatenate(Zelle1,"" "",Zelle2)
oder so:
Range(...).FormulaR1C1 = "=Zelle1&"" ""&Zelle2
gruß Daniel

Daniel, besten Dank für die Ausführungen!
22.03.2013 18:57:25
WalterK
Servus, Walter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige