Excel Programm kann nicht ausgeführt werden?
Hallo,
ich habe ein Excel Programm von einem Rechner mit Windows 7, Excel 64bit erstellt.
Dort funktioniert es auch einwandfrei.
Testet man es nun auf Windows 10, Excel 64 bit, kommt folgende Fehlermeldung:
64-Bit Office setzt 64-Bit Windows voraus (was der Fall ist).
Weiterhin kommt dann folgende Fehlermeldung:
Was kann ich tun?
Vielen Dank!
4 Antworten
Die VBA Syntax habe ich vergessen.
Was genau war das Kommentarzeichen?
Raute?
Diese if / else Sache, sie scheint mir seltsam. Einerseits scheint sie idente Vars zu deklarieren, andererseits könnte die Raute nur Teile in Kommentar setzen.
Lösche diesen Passus einmal (vorher Datei sichern!) und berichte.
Ansonsten könnte die Sache haarig werden. Bei Strings-Vars hat sich leider viel getan.
Davor könntest Du allerdings noch probieren, Excel im Modus "abwärstkompatibel mit Win 7" zu starten. Findest Du unter Eigenschaften in der Verknüpfung.
bitte drastisch vereinfachen.
Du musst wissen, welcher Zugriff exakt das Problem ist.
Das Shredden der Bytes in Bits (oder passiert das nicht?) lässt sich nicht vermeiden?
Welches Format hat denn die Quelldatei?
Es soll UTF8 in ANSI konvertiert und dann als txt gespeichert werden.
Ich habe Excel nicht mehr installiert.
Doch geht das?
Nimm' einen Makro auf, der eine Datei öffnet, sie vermutlich mit UTF8 klaglos erkennt, die Datei dann in ANSI speichert, wobei ich nicht genau weiß, welches Excel-Format Ansi schreibst.
Wenn das nicht geht, verweise ich auf den ersten Satz meine Kommentars.
Alle Parameter der Funktion sind ByVal
UND
von Typ Long. Dein Parameter past hier nicht.
Ich würde parallel auch die VBA7 directive überall weiter fortsetzen,
um eine komplette Separierung aller Code Anteile zu erhalten.
Ggf gilt es auch noch weitere Unterscheidungen zu treffen Win64, 32; Office 64, 32 bit.
Long ist der falsche Typ für Pointer bei einem 64-Bit-System, denn Long sind immer 32 Bit. Verwende stattdessen LongPtr. Die StrPtr-Funktion gibt einen Long-Wert bei einem 32-Bit-System zurück und einen LongPtr bei einem 64-Bit-System. Daher auch der Fehler "Typen unverträglich", da die API-Deklaration einen Long-Wert erwartet, während StrPtr einen LongPtr zurückgibt.
Ich würde sagen erst mal das Array richtig dimensionieren was da angemeckert wird.
Wenn ich das richtig sehe wird ein Long erwartet, welchen Typ hat "StrPtr"? String vielleicht?
Problem ist anscheinend folgende Zeile: https://prnt.sc/uymf3o
Was passiert, wenn Du variant statt string übergibst und erst in der Funktion selbst in string verwandelst?
Er kritisiert mir folgenden Teil:
https://prnt.sc/uymf3o