Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1628to1632
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

Variable, String, If und Laufzeitfehler 1004

Variable, String, If und Laufzeitfehler 1004
03.07.2018 10:02:55
Jens
Hallo zusammen,
ich habe folgendes Thema:
Ich habe eine große Tabelle mit zahlreichen Spalten, vereinfacht "A"-"E". Nun möchte ich eine Abfrage auf den Wert in Spalte "A" machen und dann einen Wert "X" in Spalte "F" setzen, sofern erfüllt. Wenn nicht, soll Wert "Y" gesetzt werden.
Die Werte "X" und "Y" möchte ich jedoch an einer zentralen Stelle pflegen.
Code:
Dim strX As String
Dim strY As String
strX = "='[Grundkosten.xlsm]Reiter_A'!R1C1"
strY = "='[Grundkosten.xlsm]Reiter_A'!R2C1"
Range("F2").Formula = _
"=IF(LEFT(RC[-5],5)=""049-9""," & strX & "," & strY & ")"

Problem:
ich erhalte einen Laufzeitfehler 1004.
Selbst wenn ich in der Grundkosten-Datei den Wert mit "0.1" und "0.3" einsetze (was ich nicht möchte) erhalte ich den Fehler.
Setze ich die Variablen manuell (strX = "0.1" / strY = "0.3") funktioniert es problemlos.
Ein Versuch, mit CStr den Wert zu einem String zu konvertieren bringt auch kein Erfolg. strX = CStr("='[Grundkosten.xlsm]Reiter_A'!R1C1")
Ich vermute, dass der Wert mit einem Komma gezogen wird und dann die anschließende Formel auf Fehler läuft.
Frage:
- (fürs Verständnis) wie kann ich bei meinem aktuellen Vorgehen den Fehler beheben / wo steckt er?
- wie sieht dann hier theoretisch eine "schöne" Lösung aus?
Vielen Dank für eure Hilfe!
Jens

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable, String, If und Laufzeitfehler 1004
03.07.2018 10:06:07
Torsten
Hallo,
welche Meldung kommt denn beim Laufzeitfehler?
AW: Variable, String, If und Laufzeitfehler 1004
03.07.2018 10:17:05
Nepumuk
Hallo Jens,
die = Zeichen müssen raus:
strX = "'[Grundkosten.xlsm]Reiter_A'!R1C1"
strY = "'[Grundkosten.xlsm]Reiter_A'!R2C1"

Gruß
Nepumuk
AW: Variable, String, If und Laufzeitfehler 1004
03.07.2018 10:40:45
Jens
oh man, manchmal kann es so einfach sein.
Vielen Dank Nepumuk, nun funktioniert es!
Schöne Grüße
Jens
AW: Variable, String, If und Laufzeitfehler 1004
03.07.2018 11:06:06
Daniel
Hi
konsequenterweise müsstest du schreiben
Range("F2").FormulaR1C1 = "..."
weil du hier die R1C1-Addressierungsart verwendest, aber inzwischen scheint VBA wohl gelernt zu haben, zuerst zu überprüfen welche Adresserierungsart vorliegt, so dass .Forumla mit beidem umgehen kann.
Ich würde aber trotzdem weiterhin .FormulaR1C1 schreiben, dann sieht man gleich beim Lesen des Codes, welche Adressierungsart zur Anwendung kommen muss
zum Thema schöne Lösung:
bei komplexen Formeln würde ich es Vermeiden, die Formeln aus Variablen zusammen zu stellen.
Übersichtlicher finde ich, zunächst den Formeltext mit Platzhaltern zu erstellen und diese dann über Replace durch den gewünschten Wert auszutauschen.
Ist zwar etwas länger, aber übersichtlicher, weil die Grundformel ein zusammenhängender Text ist. Dies lohnt sich vorallem dann, wenn eine Variable mehrfach in der Formel verwendet wird.
Mann muss nur darauf achten, dass er Platzhalter eindeutig ist und ansonten in der Formel nicht vorkommen kann:

Dim FO as string
strX = "'[Grundkosten.xlsm]Reiter_A'!R1C1"
strY = "'[Grundkosten.xlsm]Reiter_A'!R2C1"
FO =  "=IF(LEFT(RC[-5],5)=""049-9"",_InLand_,_Ausland_)"
FO = Replace(FO, "_Inland_", strX)
FO = Replace(FO, "_Ausland_", strY)
Range("F2").Formula = FO

Gruß Daniel
Anzeige
AW: Variable, String, If und Laufzeitfehler 1004
05.07.2018 09:28:14
Jens
Ich habe nun doch noch ein Thema:
verständlicherweise setzt er mir nun den Verweis in meine Variable.
Wie bekomme ich es denn hin, den tatsächlichen Wert zu erhalten?
Viele Grüße
Jens

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige