Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Löschen der "" Zellen
08.11.2016 17:22:58
Fabi
Hallo,
mein Problem ist, dass ich aufgrund eines SVerweises, der bei einer Fehlermeldung einfach nur "" in die Zelle schreibt, meine darauffolgenden Daten nicht mehr richtig verarbeiten kann. Ich muss die "" Zellen aus der kompletten Spalte löschen, soweit eigentlich kein Problem, ich habe auch schon ein Code gefunden der diese Zellen löscht, jedoch viel viel zu lange. Dabei handelt es sich um diesen Code:

Sub DeleteCells()
Dim var As Variant
Do While Not IsError(var)
var = Application.Match("", Columns(1), 0)
If Not IsError(var) Then Cells(var, 1).Delete xlShiftUp
Loop
End Sub

Ich hoffe, dass mir jemand eine schnellere Möglichkeit zeigen kann, damit meine komplette Makro nicht durch das simple Löschen von Zellen so ewig dauert. Ansonsten muss ich diese Verzögerung in Kauf nehmen.
Schonmal Danke.
Viele Grüsse,
Fabi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Löschen der "" Zellen
08.11.2016 17:37:05
Michael
Hallo!
Willst Du wirklich die Zellen löschen und Zeilen nachrücken lassen?
Teste mal:
Sub a()
Dim Ws As Worksheet: Set Ws = ActiveSheet
Dim r As Range: Set r = Ws.Columns(1)
Dim c As Range
For Each c In r.SpecialCells(xlCellTypeFormulas)
If c.Text = vbNullString Then c.Delete shift:=xlUp
Next c
End Sub
LG
Michael
AW: Löschen der "" Zellen
09.11.2016 15:56:17
Fabi
Hallo,
danke für deinen Ansatz, der Code hat dasselbe Ergebnis, sprich es werden die leeren Zellen gelöscht.
Nur das dauert immer noch ziemlich lange, ich würde fast sagen mindestens eine Minute bis ein Bereich von nur 200 Zellen (A1:A200) untersucht und gelöscht wird...
Grüsse,
Fabi
Anzeige
AW: Löschen der "" Zellen
09.11.2016 19:29:32
Daniel
Hi
lass deinen SVerweis ruhig den Fehler in die Zelle schreiben
wenn der #NV-Fehler in der Zelle steht, dann kannst du Zellen auf einen Schlag so löschen:
On Error Resume Next
Columns(1).SpecialCells(xlcelltypeformulas, 16).delete Shift:=xlup
On error Goto 0
solltest du die Formeln durch ihren Wert ersetzt haben, dann ändere das xlCelltypeFormulas in xlCelltypeConstants um:
On Error Resume Next
Columns(1).SpecialCells(xlcelltypeConstants, 16).delete Shift:=xlup
On error Goto 0
die 16 steht hierbei für "Zellen mit Fehler"
das On error Resume Next wird benötigt, falls es mal keine Fehler gibt und alle SVerweise einen Wert gefunden haben.
Denn das .SpecialCells verursacht einen Fehler, wenn es keine Zellen finden, kann.
Gruß Daniel
Anzeige
AW: Löschen der "" Zellen
09.11.2016 21:12:48
Gerd
Hallo Fabi,
du kannst deine Formeln lassen wie sie sind. Wichtig ist, die Formelberechnung bis nach Abschluss der
Löschaktion auszuschalten.
Sub teste()
Dim Ws As Worksheet, r As Range, c As Range, d As Range, s As Range, calc As Long
Set Ws = ActiveSheet
Set r = Ws.Columns(1)
On Error Resume Next
Set s = r.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0
If s Is Nothing Then goto Ende
calc = Application.Calculation
Application.Calculation = xlCalculationManual
For Each c In s
If c.Text = vbNullString Then
If d Is Nothing Then Set d = c Else Set d = Union(d, c)
End If
Next c
If Not d Is Nothing Then
d.Delete shift:=xlUp
Set d = Nothing
End If
Set s = Nothing
Application.Calculation = calc
Ende: Set r= Nothing: set Ws= Nothing
End Sub
Gruß Gerd
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige