Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Alle Felder eines Arrays = 0 setzen

Alle Felder eines Arrays = 0 setzen
15.06.2004 14:33:24
tobster
Hi Allerseits,
habe ein 2dimensionales Array x(5,5) und möchte jetzt, ohne große Umstände wie Schleifen o.ä., jedem Feld den Wert 0 zuweisen. Wie dat?
Gruß
tobster
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Felder eines Arrays = 0 setzen
Kurt
Geht nicht!
Kurt
AW: Alle Felder eines Arrays = 0 setzen
15.06.2004 14:40:12
tobster
Geht nicht? Hm. Ist ja unglaublich!
Was wäre denn die kürzeste Methode?
AW: Alle Felder eines Arrays = 0 setzen
Kurt
"Hm. Ist ja unglaublich!"
Wenn du den Antworten nicht glauben willst, warum fragst du dann überhaupt?
Zugriff auf Arrays ist extrem schnell, das ist eine Doppelschleife mit den
paar Feldern nichtmal messbar.
Option Explicit
Option Base 1

Sub Nullen()
Dim x As Byte, y As Byte, arr(5, 5) As Double
For x = 1 To 5
For y = 1 To 5
arr(x, y) = 0
Next
Next
End Sub

Kurt
Anzeige
AW: Alle Felder eines Arrays = 0 setzen
15.06.2004 14:51:59
tobster
Wollte dir nicht vorn Bug treten, sondern habe nur meinem Erstaunen Ausdruck verliehen, dass so etwas 'Simples' nicht geht.
AW: Alle Felder eines Arrays = 0 setzen
Uduuh
Hallo,
Dim x(5,5) bzw. ReDim x(5,5) setzt alles zuruck.
Gruß aus'm Pott
Udo
AW: Alle Felder eines Arrays = 0 setzen
15.06.2004 14:41:35
tobster
Also die Felder sollen nicht EMPTY sein, sondern den intWert 0 haben.
Anzeige
AW: Alle Felder eines Arrays = 0 setzen
15.06.2004 14:44:49
Michael
Hallo,
Geht nicht gibt's nicht ...
Probier mal folgendes:
Du darfst nur mit Dim nicht von Anfang das Feld fest vordeklarieren.
Dim x() As Integer
ReDim x(5, 5)
x(1, 0) = 4
ReDim x(5, 5)
Grüße
Michael
AW: Alle Felder eines Arrays = 0 setzen
15.06.2004 14:49:56
tobster
Cool, funzt!
Danke!!
AW: Alle Felder eines Arrays = 0 setzen
Uduuh
sagte ich doch! Dim ReDim
Anzeige
AW: Alle Felder eines Arrays = 0 setzen
Kurt
Das ist allerdings sehr trickreich, das wär mir nie eingefallen, toll.
Kurt
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Alle Felder eines Arrays auf 0 setzen


Schritt-für-Schritt-Anleitung

Um alle Felder eines 2-dimensionalen Arrays in VBA auf 0 zu setzen, kannst du die folgende Methode anwenden. Diese Methode nutzt eine Doppelschleife, um jeden Wert des Arrays zu ändern.

Sub Nullen()
    Dim x As Byte, y As Byte, arr(5, 5) As Double
    For x = 1 To 5
        For y = 1 To 5
            arr(x, y) = 0
        Next y
    Next x
End Sub

Mit diesem Code wird jedes Element des Arrays arr auf den Wert 0 gesetzt. Diese Methode ist effizient und benötigt keine zusätzlichen Komplikationen.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass das Array nicht korrekt initialisiert wurde. Stelle sicher, dass du das Array mit Dim oder ReDim deklarierst, bevor du versuchst, die Werte zuzuweisen. Wenn du ein Array ohne Dimensionen deklarierst, wie in Dim x() As Integer, musst du es später mit ReDim initialisieren, um sicherzustellen, dass es die richtige Größe hat.

Ein weiteres Missverständnis könnte sein, dass die Elemente des Arrays nicht auf 0 gesetzt werden, wenn das Array nicht richtig initialisiert wurde. Achte darauf, dass du es in der richtigen Form wie Dim x(5, 5) As Double definierst.


Alternative Methoden

Falls du eine Alternative zur Doppelschleife suchst, kannst du das Array auch einfach mit ReDim zurücksetzen. Dies setzt alle Elemente auf Empty, was nicht das gleiche ist wie 0. Um sicherzustellen, dass alle Elemente den Wert 0 haben, kannst du es wie folgt tun:

Dim x() As Integer
ReDim x(5, 5)

Diese Methode ist nützlich, wenn du ein neues Array initialisieren möchtest.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie du ein Array in VBA definierst und alle Felder auf 0 setzt:

Sub Beispiel()
    Dim arr(5, 5) As Double
    Dim x As Integer, y As Integer

    For x = 0 To 5
        For y = 0 To 5
            arr(x, y) = 0 ' alle Werte auf 0 setzen
        Next y
    Next x
End Sub

In diesem Beispiel wird ein 2-dimensionales Array erstellt und jedes Feld wird auf den Wert 0 gesetzt.


Tipps für Profis

  • Verwende immer Option Explicit zu Beginn deines Codes, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Wenn du ein Array in VBA initialisieren möchtest, kannst du ReDim auch verwenden, um die Größe des Arrays zur Laufzeit anzupassen.
  • Denke daran, dass der Zugriff auf Arrays in VBA sehr schnell ist, sodass die Verwendung von Schleifen für kleine Arrays in der Regel unproblematisch ist.

FAQ: Häufige Fragen

1. Wie kann ich ein Array in Access VBA definieren?
Du kannst ein Array in Access VBA mit der Dim-Anweisung definieren, z.B. Dim arr(5, 5) As Double.

2. Was passiert, wenn ich ein Array nicht initialisiere?
Wenn du ein Array nicht initialisierst, wird es standardmäßig auf Empty gesetzt. Um sicherzustellen, dass die Werte 0 sind, musst du jedes Feld manuell setzen oder das Array mit ReDim initialisieren.

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