Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Integer zu Long

VBA Integer zu Long
23.09.2022 08:18:02
Oliver
Guten morgen zusammen,
da ich VBA Technisch nicht so bewandert bin bräuchte ich eure Hilfe.
Ich habe ein Excel Sheet, das weit über 37000 Zeilen verfügt.
Jetzt habe ich gelesen das die "Integer" Funktion im VBA es nicht schafft, darüber hinaus zu lesen.
Sondern das man hier eine "Long" Funktion nützen müsste..
Jetzt meine Frage...
Kann ich in dem Bestehenden VBA einfach Integer durch Long ersetzten ?
Oder muss ich da noch mehr beachten ?
Ich hoffe das war einigermaßen verständlich :-)
Gruß Oliver
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Integer zu Long
23.09.2022 08:31:03
Oberschlumpf
Hello again :-)
Ja, stimmt, Variablen vom Typ Integer können nur Werte zwischen ca -32000 bis +32000 aufnehmen - Tabellen in deiner MSO-Version können aber bis über 1 Mio Zeilen enthalten! :-)
Da kommst du mit einer Integer-Zähl-Variable nicht weit.
Der Wertebereich beim Typ LONG ist viel, viel größer, auf jeden Fall wäre 1 Mio kein Problem (genaue Angaben findest du bei Google).
(normalerweise) befinden sich innerhalb der ersten Codezeilen die Variablen-Deklarationen

Dim ... As Integer, ... As String, ...As usw
Die einfachste Lösung bei dir wäre:
schreib als Deklaration anstelle von Integer einfach Long.
Das war's schon...
Hilfts?
Ciao
Thorsten
Anzeige
AW: VBA Integer zu Long
23.09.2022 09:17:15
Herbert_Grom
Hallo Oliver,
und um es ganz genau zu machen: Ja, es geht ganz einfach, so wie Thorsten es beschrieben hat und der Zahlenbereich umfasst
Ganzzahlen von -2.147.483.648 bis 2.147.483.647.
Noch ein paar weitere Infos dazu:
Speicherverbrauch der einzelnen Variablentypen:
Long 4 Byte Ganzzahlen von -2.147.483.648 bis 2.147.483.647
LongLong 8 Byte Ganzzahlen ca. ± 9 Trillionen
Currency 8 Byte skalierte Ganzzahlen ca. ± 9 Billionen, 4 Nachkommastellen
Double 8 Byte Gleitkommazahl
Servus
Anzeige
AW: VBA Integer zu Long
23.09.2022 09:37:40
Oliver
Vielen Dank für die schnellen Antworten,.
ich hätte nicht gedacht das es so einfach ist.
Einfach die Namen austauschen. :-)
Aber dann werd ich das mal versuchen.
Nochmals Vielen Dank
AW: VBA Integer zu Long
23.09.2022 12:10:21
snb
Verzichten aud Deklarationen reicht auch:

Sub M_snb()
Dim y As Integer
Dim y1 As Long
On Error Resume Next
y = Rows.Count
y1 = Rows.Count
x = Rows.Count
MsgBox y
MsgBox y1
MsgBox x
End Sub

Anzeige
AW: VBA Integer zu Long
23.09.2022 12:13:36
Daniel
Auf Deklaration zu verzichten ist aber einer dumme Idee.
damit handelt man sich mehr Ärger ein, als es bringt.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Integer zu Long: So geht's einfach


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und gehe zum VBA-Editor, indem du ALT + F11 drückst.
  2. Suche den Code, in dem du die Variable deklariert hast. Es könnte etwa so aussehen:
    Dim i As Integer
  3. Ändere die Deklaration von Integer zu Long:
    Dim i As Long
  4. Speichere deine Änderungen und teste den Code, um sicherzustellen, dass alles wie gewünscht funktioniert.

Damit hast du die Integer-Variablen erfolgreich in Long-Variablen umgewandelt, was dir ermöglicht, Werte über 32.767 zu speichern, die der Integer-Typ nicht verarbeiten kann.


Häufige Fehler und Lösungen

  • Fehler: Code läuft nicht, nachdem du Integer durch Long ersetzt hast.

    • Lösung: Stelle sicher, dass alle Verwendungen der Variablen ebenfalls aktualisiert wurden, insbesondere in Schleifen oder Bedingungen.
  • Fehler: Anzeigewerte sind nicht korrekt.

    • Lösung: Überprüfe, ob du auch den richtigen Datentyp für die Variable gewählt hast. Verwende Long für große Zahlen und Double für Gleitkommazahlen.

Alternative Methoden

Wenn du lieber nicht den Typ der Variablen ändern möchtest, kannst du auch die Long-Funktion verwenden, um Werte von Integer in Long umzuwandeln:

Dim myValue As Integer
Dim myLongValue As Long

myValue = 50000
myLongValue = CLng(myValue)

Mit CLng() konvertierst du den Integer-Wert in einen Long-Wert.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie du die Long-Deklaration verwenden kannst:

Sub BeispielLong()
    Dim zeilenAnzahl As Long
    zeilenAnzahl = Rows.Count
    MsgBox "Die Anzahl der Zeilen beträgt: " & zeilenAnzahl
End Sub

In diesem Beispiel wird die Anzahl der Zeilen im Arbeitsblatt in einer Long-Variablen gespeichert. Dies ist besonders nützlich, wenn du mit großen Datensätzen arbeitest.


Tipps für Profis

  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler durch Tippfehler zu vermeiden.
  • Wenn du mit großen Zahlen arbeitest, ziehe LongLong in Betracht, wenn du mehr Speicherplatz benötigst (z.B. für sehr große Datenmengen in Access VBA).
  • Überlege, ob du Dim i As Long oder Dim i As Integer verwenden möchtest, je nachdem, welche Werte du erwartest. Der Long-Typ ist in der Regel die sicherere Wahl.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Integer und Long in VBA?
Integer kann Werte im Bereich von -32.768 bis 32.767 speichern, während Long Werte von -2.147.483.648 bis 2.147.483.647 speichern kann. Für große Datensätze ist Long die bessere Wahl.

2. Kann ich einfach alle Integer durch Long ersetzen?
Ja, das ist in der Regel unproblematisch. Achte jedoch darauf, dass alle Verwendungen der Variablen ebenfalls aktualisiert werden.

3. Gibt es eine Möglichkeit, Integer-Werte in Long-Werte zu konvertieren?
Ja, du kannst die CLng()-Funktion verwenden, um Integer-Werte in Long-Werte zu konvertieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige