639 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen

Ich habe folgende Formel, die soweit gut funktioniert, wenn ich sie direkt in Excel eingebe.

=INDEX(INDIRECT(C$1&"!F1:F50");MATCH($B3;INDIRECT(C$1&"!G1:G50");0))

Nun möchte ich diese Formel aber via VBA in mehrere Zeilen schreiben, da das Bestimmungsblatt nur temporär ist und sich die Anzahl Zeilen auch immer wieder ändern können.

Ich hab's mal so probiert:


With Range("C3:D" & LastRow + 2)
.Formula = "=INDEX(INDIRECT(D$1&"!F1:F" " & lastrow &");MATCH($B3;INDIRECT(D$1&"!G1:G" & lastrow);0))"
'.FormulaR1C1 = "=INDEX(INDIRECT(R1C&""!F1:F"" " & LastRow & "),MATCH(R[-24]C2,INDIRECT(R1C&""!G1:G50""),0))"
End With


Damit kommt aber ein Kompilierfehler, Expected: end of statement
und markiert das erste Ausrufezeichen.

Auch mit FormulaR1C1 komme ich nicht an's Ziel.

Was mach ich bloss falsch?

Besten Dank schon mal im Voraus!

Gruss Albin

1 Antwort

0 Punkte
Beantwortet von
Hallo,

Ich vermute, dass liegt an den Anführungszeichen. Ein String beginnt und endet jeweils mit einem Gänsefüßchen. Willst du innerhalb eines Strings ein Gänsefüßchen setzen, musst du dieses gleich zwei mal angeben. Befindet sich dieses am Ende des Strings, braucht es noch ein drittes um den String abzuschließen.

Grob geschätzt würde ich deinen Code also so aufbauen (ich hoffe ich habe mich nicht verzählt, hab's nicht getestet!)

With Range("C3:D" & LastRow + 2)
.Formula = "=INDEX(INDIRECT(D$1&""!F1:F" & lastrow &""");MATCH($B3;INDIRECT(D$1&""!G1:G" & lastrow & """);0))"
End With

Gruß Mr. K.
...