Excel Programm kann nicht ausgeführt werden?

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.

Woher ich das weiß:Berufserfahrung – ich arbeite schon sehr lange im EDV Bereich, viele Sparten

LukaMarcelHD 
Beitragsersteller
 13.10.2020, 18:57

Er kritisiert mir folgenden Teil:

https://prnt.sc/uymf3o

Mauritan  13.10.2020, 19:22
@LukaMarcelHD

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?

LukaMarcelHD 
Beitragsersteller
 13.10.2020, 19:59
@Mauritan

Es soll UTF8 in ANSI konvertiert und dann als txt gespeichert werden.

Mauritan  13.10.2020, 20:04
@LukaMarcelHD

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.

https://docs.microsoft.com/en-us/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office

Woher ich das weiß:Recherche

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?