Große Excel Datei in Werte wandeln

Heute musste ich eine ziemlich umfangreiche Excel Datei in Werte wandeln. Normalerweise würde ich das einfach mittels Copy-Paste machen und die Daten als Werte einfügen. Bei der Menge an Daten kam Excel aber leider ganz schön ins schnaufen (bzw. ist mehrmals abgestürzt), darum habe ich das mittels VBA gelöst.

Die Zeilen einzeln zu kopieren funktioniert zwar ganz gut, ist aber leider extrem langsam. Vielleicht gibt es noch eine bessere Möglichkeit.

Ich hatte auch einmal einen Export nach *.csv oder *.txt versucht und einen anschließenden Import nach Excel, leider gingen hier bei Telefonummern die mit +43 begonnen haben die Formate verloren…

Generell scheint das ein häufigeres Problem zu sein, ich habe dazu auch diesen Beitrag gefunden:

https://stackoverflow.com/questions/36272285/fastest-method-to-copy-large-number-of-values-in-excel-vba

https://www.xylos.com/en/learning/blog/tip-1-save-time-processing-data-excel-vba-copy-cells

Im Code werden die & leider als &amp dargestellt, darum habe ich sie durch A-N-D angeführt. Beim kopieren des Codes einfach die A-N-D durch & ersetzen.


Sub Grosse_Datei_als_Werte()

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    'Inhalte in Tabellenblatt "Werte" löschen
    Sheets("Werte").Select
    Cells.Select
    Selection.ClearContents
    
    'Anzahl Zeilen in Tabellenblatt "CUSTTABLE" ermitteln
    Sheets("CUSTTABLE").Select
    loletzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
    
    'Kopieren und einfügen aller Zeilen von Tabellenblatt "CUSTTABLE" nach Tabellenblatt "Werte"
    For loi = 1 To loletzte
        
        Sheets("CUSTTABLE").Select
        Rows(loi A-N-D ":" A-N-D loi).Select
        Selection.Copy
        Sheets("Werte").Select
        Rows(loi A-N-D ":" A-N-D loi).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
        If (loi Mod 500) = 0 Then
        
            Application.CutCopyMode = False
            ActiveWorkbook.Save
        
        End If
    
    Next loi

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub