Array-Bereich direkt in Zell-Bereich schreiben

Sie kennen sicherlich den gewohnten Umgang (schreiben und lesen) mit Array-Variablen. Normalerweise wird jeder Eintrag der Array-Variable einzeln referenziert.

Sub Normales_Array()
'** Dimensionierung der Variablen 
Dim  strArray(5, 3) '5 Zeilen, 3 Spalten
'** Elemente in Array schreiben 
For  a = 1 To 5
   For b = 1 To 3
     '** Element in Array schreiben
     strArray(a, b) = Cells(a, b).Address
   Next b
Next  a
'** Auslesen der Array-Variable 
'** Beispiel: Element 3,2 auslesen = Zeile 3, Spalte 2 also Adresse B3 
 MsgBox strArray(3, 2)
End  Sub

 

Das folgende Beispiel zeigt, wie sich ein ganzer Zellbereich in einer Array-Variable ablegen und auslesen lässt, ohne dass jedes einzelne Array-Element einzeln zum Auslesen referenziert werden muss. Damit können Array-Inhalte sehr schnell ohne For-Next-Schleifen in einem Zellbereich ausgegeben werden.

 

Wichtig ist, dass der eingelesene Zellbereich absolut mit dem Ausgabebereich identisch ist, d.h. beide Bereiche müssen die gleiche Größe (Anzahl Zeilen und Spalten) haben.

 

Sub Gesamtes_Array_schreiben()
'*************************************************************************************** 
' Module : Modul1 
' Author : Alois Eckl 
' Purpose : Array-Bereich direkt in Zell-Bereich schreiben 
'*************************************************************************************** 

'** Dimensionierung der Variablen 
Dim  arrTotal, strAdr As String
Dim  lngZeile As Long
Dim  lngSpalte As Long

'** Bereich löschen 
 Range("B5:H30").ClearContents

'** Array definieren 
 arrTotal = Range("B5:H30")
    
For  lngZeile = 1 To 26 '** Zeilen 5 bis 30
   
   For lngSpalte = 1 To 7 '** Spalten B bis H
     '** Zelladresse auslsen
     strAdr = Cells(lngZeile + 4, lngSpalte + 1).Address
     
     '** Array aktualisieren
     arrTotal(lngZeile, lngSpalte) = strAdr
   
   Next lngSpalte

Next  lngZeile

'** Gesamten Array-Bereich schreiben 
 Range("B5:H30") = arrTotal
    
End  Sub      


Partnerlinks

Relevante Artikel

  • Zeilen (Einträge) abhängig vom Datum löschen

    Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A im Monat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002 daten daten daten 4 12.09.2002 daten daten daten 5 15.09.2002 daten daten daten 6 20.09.2002 daten daten daten 7 12.10.2002 daten daten daten 8 15.10.2002 daten daten daten 9 20.10.2002 daten daten daten 10 15.11.2002 daten daten daten 11 15.11.2002 daten daten daten 12 15.11.2002 daten daten daten 13 15.11.2002 daten daten daten 14 12.12.2002 daten daten daten 15 15.12.2002 daten daten daten 16 20.12.2002 daten daten daten Nach...

  • Grafiken (Bilder) über eine Wenn-Abfrage einfügen

    Das folgende Makro fügt abhängig vom Inhalt der Zelle A1 eine Grafik ab der Zelle D1 ein. Steht in A1 die Ziffer 1, so...

  • Konvertieren eines mehrzeiligen Daten-Blocks zu einem konstistenten Datensatz

    In diesem Beispiel zeigen wir Ihnen, wie sich ein nicht konsistenter Datenblock in einen kosistenten Datensatz konvertieren lässt. Die...

  • ActiveCell: Fragen und Antworten

    Frage im Spotlight-Forum zum Befehl ActiveCell: Hallo, warum funktioniert denn folgender VBA-Code nicht? {code} If...

  • Anzahl der leeren Zellen innerhalb eines Bereiches ermitteln

    Mit dem Makro leere_zellen_ermitteln wird die Anzahl aller leeren Zellen im selektierten Bereich ermittelt und mittels...

Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.