auf meinem Rechner habe ich die Office 2019 32 Bit.
Kann ich mit meinem Rechner überprüfen ob die VBA Code für Excel auch auf einer niedrigeren 64 Bit Version von Office laufen?
Wenn ja dann bitte wie.
Gruß Wolfi
If VBA.LCase(Left(.Cells(z, 1).Text, Len(TextBox1))) = VBA.LCase(TextBox1) Then
Da konnte die Funktion LCase nicht gefunden werden. Durch das ersetzten durch VBA.LCase ging es dann wieder. Hat das auch etwas mit der Bit Version zu tun?Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function ShellExecuteA Lib "Shell32.dll" ( _
ByVal hwnd As LongPtr, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
Überprüfen der Excel-Version:
VBA-Editor öffnen:
ALT + F11
, um den VBA-Editor zu öffnen.Überprüfen der Deklarationen:
PtrSafe
verwendest. Beispiel:
Private Declare PtrSafe Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Long
Fehlerhafte Verweise prüfen:
Bitcode testen:
#If Win64
für bedingte Kompilierung, um sicherzustellen, dass der Code auch auf 64-Bit-Versionen läuft.Excel Fehler beim Kompilieren 64-Bit:
Private Declare
-Deklarationen das PtrSafe
-Schlüsselwort enthalten.LCase nicht gefunden:
VBA.LCase
verwendest und einen Fehler erhältst, könnte dies an einem fehlerhaften Verweis liegen. Überprüfe die Verweise im VBA-Editor.Absturz von Excel:
LongPtr
anstelle von Long
.VBA #If Win64:
#If Win64
verwenden, um Code für 64-Bit spezifisch zu machen. Beispiel:
#If Win64 Then
' 64-Bit spezifischer Code hier
#Else
' 32-Bit spezifischer Code hier
#End If
Verwendung von Debugging:
Beispiel 1: Sleep-Funktion:
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub TestSleep()
Sleep 1000 ' Pausiert den Code für 1 Sekunde
End Sub
Beispiel 2: FindWindow-Funktion:
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As LongPtr
Beispiel 3: ShellExecuteA-Funktion:
Private Declare PtrSafe Function ShellExecuteA Lib "Shell32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As LongPtr
Verwende LongPtr
für Handles: Bei der Arbeit mit Windows-API-Funktionen, die Handles verwenden, solltest Du immer LongPtr
anstelle von Long
verwenden, um sicherzustellen, dass Dein Code sowohl auf 32-Bit- als auch auf 64-Bit-Versionen funktioniert.
Dokumentation: Halte Dich an die offizielle Microsoft-Dokumentation für VBA und die API-Funktionen, um die korrekten Deklarationen und Datentypen zu verwenden.
Regelmäßiges Testen: Teste Deinen Code regelmäßig in beiden Umgebungen, um sicherzustellen, dass alles korrekt funktioniert.
1. Kann ich meinen 32-Bit Code einfach auf 64-Bit umstellen?
Ja, aber Du musst sicherstellen, dass Du PtrSafe
in Deine Deklarationen einfügst und die richtigen Datentypen verwendest.
2. Was tun, wenn ich einen Fehler beim Kompilieren erhalte?
Überprüfe Deine Deklarationen auf das Vorhandensein von PtrSafe
und stelle sicher, dass alle verwendeten Verweise im VBA-Editor korrekt sind.
3. Wie teste ich meinen Code auf 64-Bit?
Du kannst #If Win64
verwenden, um spezifische 64-Bit-Tests durchzuführen. Alternativ solltest Du den Code auf einem 64-Bit-PC testen oder in einer virtuellen Maschine eine 64-Bit-Umgebung einrichten.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen