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://www.xylos.com/en/learning/blog/tip-1-save-time-processing-data-excel-vba-copy-cells
Im Code werden die & leider als & 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