VisualBasic Laufzeitfehler 1004: Anwedungs-oder objektdefinierter Fehler

SiWi

Ensign
Registriert
Apr. 2005
Beiträge
217
Code:
Private Sub CommandButton1_Click()
For i = 19 To (19 + Test.LastValue / Test.Intervall)
Feld = "A" & i
dastring = "=InterpolationTage(" & Feld + ";" & Test.Suchvektor & ")"
Cells(i, 1) = (i - 18) * Test.Intervall
ActiveWorkbook.Sheets("damdam").Activate
ActiveWorkbook.Sheets("damdam").Cells(i, 2).Activate
ActiveWorkbook.Sheets("damdam").Cells(i, 2).Select
ActiveWorkbook.Sheets("damdam").Cells(i, 2).Formula = dastring
Feld = "D" & i
Cells(i, 5) = "=InterpolationDatum(" & Feld & ";$D$16;" & Chr(34) & "A19:A" & (Test.LastValue / Test.Intervall) & Chr(34) & ")"
Next i
End Sub

Ich bekomme die Fehlermeldung in dieser Zeile:
ActiveWorkbook.Sheets("damdam").Cells(i, 2).Formula = dastring

Das Feld ist nicht schreibgeschützt. Auch funktioniert die Formel so wie sie zum Zeitpunkt des Fehlers in dastring enthalten ist, wenn man sie normal im Arbeitsblatt eingibt.
Test ist eine Userform und Intevall, LastValue und Suchvektor sind Eingabefelder.
 
Es kann sein dass du in VBA englische Bezeichnungen für die Formel-Funktionen angeben musst, also statt InterpolationDatum das englische äquivalent (würde auch Sinn machen, so bleibt dein VBA-Code für verschiedene Sprachen portabel)
 
verdammt
ok ich würde einfach mal so vorgehen...
schreib da nicht die Formel rein sondern z.B. nur "Hallo"
Code:
dastring = "Hallo"
wenn das geht, weißt du, dass die Zuweisung an sich 100% in Ordnung ist

dann machst du z.B.
Code:
dastring = "=A1+A2"
um zu sehen, dass es auch mit Formeln kein Problem gibt

dann z.B.
Code:
dastring = "=InterpolationTage(A1; irgendwas_sinnvolles_halt)"

und wenn das geht, dann machste statt A1 eben wieder Feld usw..

So kannst du relativ genau eingrenzen, was den Fehler verursacht und ggf. auch was dagegn machen


Edit:
Was ist denn Test.Suchvektor genau für ein Wert? Kann es sein, dass der in Anführungszeichen stehen muss?
 
Ja Test.Scuhvektor muss in Anführungszeichen stehen...
Bin dem Problem auch schon näher gekommen: Wenn ich einfach schreibe
Code:
dastring = "=InterpolationTage(A1;"A1:A14")"
bekomme ich in vba einen syntaxfehler.
Wie kann man die Anführungszeichen richtig escapen?
 
Durch doppelete Anführungszeichen :-)
Code:
dastring = "=InterpolationTage(" & Feld + ";""" & Test.Suchvektor & """)"
 
Zurück
Oben