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

Makro zum Ersetzen dauert ewig

Forumthread: Makro zum Ersetzen dauert ewig

Makro zum Ersetzen dauert ewig
11.01.2019 14:07:04
Jens
Hallo zusammen,
in einem Arbeitsblatt habe ich 230.000 Zeilen mit Einträgen. In Spalte 4 möchte ich alle leeren Zellen mit "unbekannt" ersetzen. Das Makro dauert ewig. Gibt es elegantere und vor allem schnellere Lösungen dafür?
Auszug:
'Formelberechnung unterbrechen
Application.Calculation = xlCalculationManual
'umbenennen in unbekannt
Dim i
For i = Cells(Rows.Count, 4).End(xlUp).Row To 11 Step -1
On Error Resume Next
If Cells(i, 4).Value = "" Then
Cells(i, 4).Value = "unbekannt"
End If
Next
'Formelberechnung aktivieren und Neuberechnung
Application.Calculation = xlCalculationAutomatic
Application.Calculate
Besten Dank für Eure Hilfe
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:14:51
Malte
Hallo Jens,
der einfachste Weg um deinen Code zu beschleunigen ist folgender:
'Formelberechnung unterbrechen
Application.ScreenUpdating = False
und
Application.ScreenUpdating = True
noch jeweils zu deiner Zeile:
Application.Calculation = xlCalculationManual
und
Application.Calculation = xlCalculationAutomatic
hinzufügen.
Anzeige
AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:24:23
Jens
Hallo Malte,
Application.ScreenUpdating ist am Anfang und Ende des Makro eingebaut. Ebenfalls die Unterbrechung der Formelberechnung und deren Aktivierung. Siehe Auszug
BG Jens
AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:32:43
onur

Dim z,lz
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
lz=Cells(Rows.Count, 4).End(xlUp).Row
For z = 1 to lz
If Cells(z, 4) = "" Then Cells(z, 4) = "unbekannt"
Next z
'Formelberechnung aktivieren und Neuberechnung
Application.ScreenUpdating = true
Application.Calculation = xlCalculationAutomatic

Application.Calculate
Anzeige
AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:36:35
onur
Sorry, muss natürlich lauten:
For z = 11 to lz

AW: Makro zum Ersetzen dauert ewig
11.01.2019 14:39:34
Daniel
HI
probier mal
Range("D11:D" & cells(rows.count, 4).end(xlup).Row).Replace "", "unbekannt", xlwhole

oder
With Cells.SpecialCells(xlCellTypeLastCell)
With Range(.Offset(11 - .Row, 1), .Offset(0, 1))
.FormulaR1C1 = "=IF(RC4="""",""unbekannt"",RC4)"
.Copy
.Offset(0, 4 - .Column).PasteSpecial xlPasteValues
.ClearContents
End With
End With
wenn man schnelle und elegante Lösungen in VBA sucht, dann wird man häufig fündig, wenn man sich überlegt, wie man diese Aufgabe ohne VBA schnell und elegant lösen könnte und dann diesen Weg in VBA nachprogrammiert.
Gruß Daniel
Anzeige
ob man dafür PQ braucht?
11.01.2019 18:23:35
Daniel
das kann eigentlich auch das normale ERSETZEN von Excel
Gruß Daniel
Anzeige
AW: ob man dafür PQ braucht?
14.01.2019 07:58:25
Jens
Moin zusammen,
ich habe jetzt mit der Lösung von Daniel
Range("D11:D" & Cells(Rows.Count, 4).End(xlUp).Row).Replace "", "unbekannt", xlWhole
eine sehr gute Performance.
Besten Dank für die schnelle Hilfe
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige