String kann Zelle nicht zugewiesen werden

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von peterfido.

    String kann Zelle nicht zugewiesen werden

    mal fernab wie sinnvoll das einfügen des folgenden strings in eine zelle per vba ist, wüsste ich gerne WIE.

    Visual Basic-Quellcode

    1. Cells(1,1).Value = "=WENN(C10=" & Chr(34) & Chr(34) & ";" & Chr(34) & Chr(34) & ";SVERWEIS(C10;E$2:G$97;3;0))"



    leider meckert vba bei dieser zeile mit laufzeitfehler 1004.
    habe das ganze mal von hinten nach vorne auskommentiert, dabei habe ich festgestellt, dass er mit der klammer auf "(" nicht zurecht kommt, sobald er die klammer zu ")" nicht "findet".

    sobald ich ein semikolon ";" zwischen "(" und ")" habe, kommt es zu dem laufzeitfehler. geht das nun gar nicht?
    habe auch schon versucht erst den ganzen text einer stringvariablen zuzuweisen und dann diese dem wert der zelle zuzuweisen, aber das kommt auf's selbe raus. wenn ich dem string den text zuweise, kommt es zu keinem problem, also liegt es wohl daran, dass excel an dieser stelle erkennt: hier kommt ne =wenn-formel und die scheint mir nicht richtig formatiert zu sein. was sie natürlich ist, habe sie natürlich getestet.

    edit: wir können auch vielleicht erstmal mit etwas kleinerem anfangen wie z.b.

    Visual Basic-Quellcode

    1. Cells(1,1).Value = "=WENN(1;)"



    wenn ich das so in einer excel-zelle eintrage, kommt eine 0 raus. wenn ich den string über vba zuweise, dann kommt es zum laufzeitfehler.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodBelaFarin“ ()

    könntest du vielleicht mal die Formel so posten, wie du sie im Excel haben willst?
    Also ohne die chr(...) einfach nur genauso wie excel damit arbeiten soll
    achja.. btw...
    du musst die Formeln in englisch einfügen...Großschreibung beachten

    Visual Basic-Quellcode

    1. range.formula = "=IF(1;)"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FloFuchs“ ()

    na klar kann ich =)


    Quellcode

    1. =WENN(C10="";"";SVERWEIS(C10;E$2:G$97;3;0))


    das ist 1:1 das, was ich gerne drin stehen hätte (was im moment auch noch manuell eingetragen ist und soweit funkioniert).

    und bist du dir mit dem englischen sicher? wenn ich nur

    Visual Basic-Quellcode

    1. Cells(1,1).Value = "=WENN(1)"



    das nehme, dann funktionierts ja.
    Statt Value ist Formula besser geeignet. Value ist dann das Ergebnis der Formel. Die englische Schreibweise ist in VBA korrekt.

    Dadurch entstehen dann auch mal Fehler, welche nicht wegzubekommen sind, da Punkt und Komma bzw. andere ländereinstellunsgspezifische Dinge nicht immer passen. Selbst aufgezeichnete Makros lassen sich dann nicht einfach so wieder "abspielen".

    Da beim Aufzeichnen und späteren Ablauf des Makros einmal die Ländereinstellungen berücksichtigt werden und einmal nicht.
    Bilder
    • Zwischenablage01.jpg

      53,1 kB, 997×359, 183 mal angesehen
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „peterfido“ ()