Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Werte einem Array zuweisen (Indexspezifisch)

Werte einem Array zuweisen (Indexspezifisch)
Markus
Hi,
wie kann einen bestimmten Wert (in diesem Fall Variable Var123) einem bestimmten Index (in diesem Fall 0) im Array zuweisen?
Kenne es von anderen Programmiersprachen nur so:
Array1 = Array()
Array(0) = Var123
Doch so erhalte ich eine Fehlermeldung - Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs.
Was mache ich falsch?
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Werte einem Array zuweisen (Indexspezifisch)
22.02.2011 10:27:14
Peter
Hallo Markus,
versuch es so:
Option Explicit
Public Sub Test()
Dim Array1()  As Variant
Dim iIndx     As Integer
Dim Var123    As Variant
Var123 = 789
ReDim Preserve Array1(iIndx)
Array1(0) = Var123
MsgBox Array1(0)
End Sub

Gruß Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte einem Array in Excel VBA zuweisen


Schritt-für-Schritt-Anleitung

Um einem Array in Excel VBA Werte zuzuweisen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Deklariere das Array: Lege ein leeres Array an, z.B. Dim Array1() As Variant.
  2. Definiere eine Variable: Erstelle eine Variable, die den Wert speichert, den du zuweisen möchtest, z.B. Dim Var123 As Variant.
  3. Weise der Variable einen Wert zu: Setze Var123 = 789.
  4. Redimensioniere das Array: Nutze ReDim Preserve Array1(iIndx), um das Array auf die gewünschte Größe zu ändern.
  5. Weise den Wert dem Array zu: Nutze Array1(0) = Var123, um den Wert an den gewünschten Index zuzuweisen.
  6. Teste das Ergebnis: Verwende MsgBox Array1(0), um den Wert anzuzeigen.

Hier ist der vollständige Code:

Public Sub Test()
    Dim Array1() As Variant
    Dim iIndx As Integer
    Dim Var123 As Variant

    Var123 = 789
    ReDim Preserve Array1(iIndx)
    Array1(0) = Var123
    MsgBox Array1(0)
End Sub

Häufige Fehler und Lösungen

Ein häufiger Fehler, den viele Benutzer beim Arbeiten mit VBA-Arrays machen, ist der Laufzeitfehler 9: "Index außerhalb des gültigen Bereichs". Dies passiert oft, wenn das Array nicht richtig dimensioniert wurde. Hier sind einige Lösungen:

  • Überprüfe die Dimensionierung: Stelle sicher, dass du das Array mit ReDim oder ReDim Preserve korrekt dimensionierst, bevor du versuchst, Werte zuzuweisen.
  • Indexierung beachten: Achte darauf, dass du den Index ab 0 oder ab 1 verwendest, je nachdem, wie dein Array definiert ist.
  • Initialisiere das Array: Wenn du ein leeres Array verwendest, stelle sicher, dass du es initialisierst, bevor du Werte zuweist.

Alternative Methoden

Es gibt mehrere Wege, Werte einem VBA-Array zuzuweisen. Hier sind zwei alternative Methoden:

  1. Direkte Zuweisung: Du kannst Werte direkt beim Erstellen des Arrays zuweisen:

    Dim Array1 As Variant
    Array1 = Array(789, 456, 123)
  2. Verwendung von Schleifen: Wenn du mehrere Werte zuweisen möchtest, kannst du eine Schleife verwenden:

    Dim Array1() As Variant
    Dim i As Integer
    ReDim Array1(2)
    For i = 0 To 2
       Array1(i) = i * 100
    Next i

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von VBA-Arrays:

  • Speichern von Noten:

    Dim Noten() As Variant
    ReDim Noten(4)
    Noten(0) = 1
    Noten(1) = 2
    Noten(2) = 3
    Noten(3) = 4
    Noten(4) = 5
  • Farbwerte in ein Array zuweisen:

    Dim Farben() As Variant
    ReDim Farben(2)
    Farben(0) = RGB(255, 0, 0) ' Rot
    Farben(1) = RGB(0, 255, 0) ' Grün
    Farben(2) = RGB(0, 0, 255) ' Blau

Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich, alle Variablen zu deklarieren, was Fehler verhindert.
  • Nutze ReDim Preserve mit Bedacht: Das Ändern der Array-Größe kann die Performance beeinträchtigen. Überlege dir vorher, wie groß dein Array wirklich sein muss.
  • Fülle Arrays mit Daten aus Tabellen: Du kannst Werte aus Excel-Tabellen direkt in ein Array einlesen, was die Verarbeitung beschleunigt.

FAQ: Häufige Fragen

1. Wie kann ich ein mehrdimensionales Array erstellen?
Du kannst ein mehrdimensionales Array so deklarieren: Dim Array1(1 To 5, 1 To 3) As Variant.

2. Was ist der Unterschied zwischen ReDim und ReDim Preserve?
ReDim verändert die Größe des Arrays und löscht die vorhandenen Werte, während ReDim Preserve die bestehenden Werte beibehält, wenn du die letzte Dimension des Arrays änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige