VBA: Löschen nicht gesperrter Felder
#1
Hallo Allerseits,

wie löscht man die nicht gesperrten Felder einer Exceltabelle möglichst schnell?

Der von mir verwendete Code:

Code:
Sub ClearCells()
Dim zelle As Range
  For Each zelle In ActiveSheet.UsedRange
    If (zelle.Locked = False) Then zelle.ClearContents
  Next
End Sub
ist leider sehr langsam, was wahrscheinlich daran liegt, dass auf dem Arbeitsblatt über 20.000 ungesperrte Zellen ohne erkennbares Muster irgendwo rumliegen. Die Möglichkeit mit einem Template zu arbeiten hab ich schon ins Auge gefasst, aber vorher möchte ich die Frage in die Runde stellen.
vg, MM
Top
#2
Hast Du es mal probiert, wenn die Bildschirmaktualisierung abgeschaltet ist?

Gruß
Sebastian
Top
#3
Hab Deinen Code mal ausprobiert. Bei mir geht das ziemlich schnell. Lad doch mal Deine Datei hoch.

Gruß
Sebastian
Top
#4
Hallo,

z.B. so:
Sub ClearCells()
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
On Error Resume Next
Cells = ""
On Error GoTo 0
ActiveSheet.Unprotect
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • mmat
Top
#5
Vielen Dank an alle. Kuwers Beitrag hat das Problem gelöst!

vg, MM
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste