Matrix mit 0 füllen
#1
Hi,

mit folgendem Makro fülle ich die leeren Zellen in einem Zellbereich mit 0.

Wenn nur wenige der 10.000 Zellen nicht leer sind, läuft das Makro sehr lange. Wie kann das resourcenschonender gelöst werden?

Code:
Sub Null_eintragen_abSpalteE()
   '
   'Variablen im mdl_Variablen
   '
   'Konstanten
   loMatrixStart = 4          'Zeile
   loMatrixEnde = 103         'Zeile
   loMaßnahmeStart = 9
   '
   With Application
      .ScreenUpdating = False
      .EnableEvents = False
   End With
  
   With ActiveSheet
      For j = 5 To 104                          '100 Spalten: E bis CZ
         For i = loMatrixStart To loMatrixEnde  '100 Zeilen: 4 bis 103
            If Cells(i, j) = "" Then Cells(i, j) = 0
         Next i
      Next j
      
   End With
  
   With Application
      .ScreenUpdating = True
      .EnableEvents = True
   End With
  
End Sub
Top
#2
Moin Ralf!

Folgendes dürfte "etwas" schneller sein (so ganz ohne Schleife(n)):
Code:
Range(xxx).SpecialCells(xlCellTypeBlanks) = 0

Ergänzend:
Dies funktioniert nur mit tatsächlichen Leerzellen.
Nicht bei Zellen, die als Formelergebnis einen Leerstring "" enthalten.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Rabe
Top
#3
Hi Ralf,

danke, klappt super!
Top


Gehe zu:


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