Array's

 

Home
Nach oben

Last Update 20.07.2004

Copyright  2003
Ramses (C)

 

Aus der Microsoft-Hilfe:

 

Gibt einen Wert vom Typ Variant zurück, der ein Datenfeld enthält.

Syntax

Array(ArgListe)

Das erforderliche Argument ArgListe enthält eine durch Kommata getrennte Liste von Werten, die den im Variant enthaltenen Elementen des Datenfeldes zugewiesen werden. Werden keine Argumente angegeben, so erstellt die Funktion ein Null-Datenfeld.

Bemerkungen

Der Zugriff auf ein beliebiges Element eines Datenfeldes erfolgt durch Angabe des Variablennamens mit einem nachfolgenden Klammernpaar, das die Indexnummer des gewünschten Elements enthält. Im folgenden Beispiel erstellt die erste Anweisung die Variable A als Variant. Die zweite Anweisung weist der Variablen A ein Datenfeld zu. Die letzte Anweisung weist den Wert, der im zweiten Datenfeldelement enthalten ist, einer anderen Variablen zu.

Dim A As Variant
A = Array(10,20,30)
B = A(2)

Die untere Grenze für ein mit der Array-Funktion erstelltes Datenfeld wird bestimmt durch die in der Option Base-Anweisung festgelegte untere Grenze, es sei denn, Array wird mit dem Namen der Typenbibliothek qualifiziert (z.B. VBA.Array). In diesem Fall wird Array nicht durch Option Base beeinflusst.

Anmerkung   Ein Variant, der nicht als Datenfeld deklariert ist, kann trotzdem ein Datenfeld enthalten. Eine Variable vom Typ Variant kann ein Datenfeld eines beliebigen Typs enthalten, außer Zeichenfolgen konstanter Länge und benutzerdefinierte Typen. Obwohl ein Variant, der ein Datenfeld enthält, sich konzeptionell von einem Datenfeld unterscheidet, dessen Elemente vom Typ Variant sind, erfolgt der Zugriff auf die Datenfeldelemente in gleicher Weise.

 

Definierte Buchstaben in einer Zelle suchen und färben

Vertikal Transponder

Tabellenblätter gruppieren


Beispiel 1:

Sucht einen Buchstaben in einer Zelle und färbt diese Zelle mit einer bestimmten Farbe

Sub Suchbegriff_suchen_und_färben()

'Private Sub Worksheet_Change(ByVal Target As Range)

Dim Cr As Long, CC As Integer, i As Integer, Y As Long

Dim txtArray() As Variant

Dim colArray() As Variant

'Suchbegriffe definieren

txtArray = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")

'die zugehörigen Farben definieren

colArray = Array("4", "5", "6", "7", "8", "44", "36", "55", "56", "11")

'1 = Spalte A

CC = 1

'65536 = die letzte mögliche Zelle

Cr = 65536

'Target Zelle die Farbe zuweisen

'i = die Anzahl der Suchbegriffe

For i = 0 To 9

            If Target.Value = txtArray(i) Then

            Target.Interior.ColorIndex = colArray(i)

            End If

Next i

'Alle Farben auf 0 setzen

Worksheets("Tabelle2").Columns(CC).Interior.ColorIndex = xlNone

'Festlegen wie weit die Farbprüfung durchgeführt werden soll

If Cells(Cr, CC) = "" Then

           Cr = Worksheets("Tabelle2").Cells(Cr, CC).End(xlUp).Row

End If

'Suchbegriffe einfärben

For Y = 1 To Cr

           For i = 0 To 9

                      If Worksheets("Tabelle2").Cells(Y, CC) = txtArray(i) Then

                                 Worksheets("Tabelle2").Cells(Y, CC).Interior.ColorIndex = colArray(i)

                     End If

      Next i

Next Y

End Sub

 

 


Beispiel 2

Schreibt einen Zellenbereich aus einer Spalte in einen Array und schreibt diesen dann wider umgekehrt zurück

 

Start:

 

Ergebnis:

 

1 4
2 Wort
Wort 2
4 1
   

 

Sub Vertical_Transponder()

'Hier in Spalte A Zeile 4 - 103

Dim i As Integer, back As Integer

Dim VertArr As Variant

'Array dimensionieren

ReDim VertArr(100)

'Array einlesen

For i = 4 To 103

       VertArr(i - 3) = Cells(i, 1)

Next i

back = 1

'Array zurückschreiben

For i = 103 To 4 Step -1

       Cells(i, 1) = VertArr(back)

       back = back + 1

Next i

End Sub

 


Tabellen in einer Mappe gruppieren

 

Option Explicit
'Wichtig damit die Array Zählung bei 1 startet und nicht wie sonst bei 0

Option Base 1


Sub Group_Sheets()
'(C) by Ramses

'Gruppiert Sheets für die weitere Bearbeitung
Dim i, n
Dim tbArr() As Variant
n = 1

'Array-Grösse ist Anzahl Tabellenblätter - 1
ReDim tbArr(Worksheets.count - 1)
'Startet die Gruppierung ab Tabelle2
For i = 2 To Worksheets.count
    tbArr(n) = Worksheets(i).name
    n = n + 1
Next i
Sheets(tbArr).Select
End Sub

 

Zurück


 


 

Weitere Praktische Anwendungen für eine Array Funktion findest Du hier, unter "Externe Dateien"