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

Array verschiedene Datentypen zuweisen

Forumthread: Array verschiedene Datentypen zuweisen

Array verschiedene Datentypen zuweisen
11.10.2005 10:39:58
Marco
Hallo Ihr,
ich möchte in einem Array verschiedene Datentypen speichern. Nachdem ich mit
Dim Array (1 To 4, 1 To 2) as Object
den Array erstellt habe, möchte ich ihn mit Integer und Objekten (Textbox) füllen.
Set Array(1,1) = 1
Set Array(1,2) = txtTextfeld
Ich dachte eigentlich, dass der Objekt-Dateityp (als Mutter aller Dateitypen, oder ist das nur in Java so?) alle anderen Dateitypen aufnehmen kann, aber leider sind die Typen unverträglich. Und einen Typecast zu einem Objekt kann ich ja auch nicht durchführen. Würde das gehen, könnte ich beim Auslesen das Zahl-Objekt ja einfach in einen Integer casten.
Wie kann ich denn das Problem lösen? Ich möchte ein Objekt und Integers in ein mehrdimensionales Array aufnehmen. Oder kann ich jede Dimension mit einem anderen Dateityp deklarieren?
Vielen Dank für eure Hilfe!
Gruß, Marco
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array verschiedene Datentypen zuweisen
11.10.2005 11:03:49
Leo
Hi,
Dim Array (1 To 4, 1 To 2) as Variant
oder einfach
Dim Array (1 To 4, 1 To 2)
mfg Leo
AW: Array verschiedene Datentypen zuweisen
11.10.2005 11:51:16
gordon
Hi Marco,
Array-Element als Träger eines Objektverweises geht m.W. nicht ( warum auch ? )
Inhalt der Textbox natürlich wie angegeben möglich.
s. auch VB Hilfe unter
Verwenden von Datenfeldern
Gruß
gordon
Anzeige
AW: Array verschiedene Datentypen zuweisen
11.10.2005 12:08:08
Nepumuk
Hi gordon,
hast du das schon mal versucht? Natürlich geht das.
Gruß
Nepumuk

AW: Array verschiedene Datentypen zuweisen
11.10.2005 12:53:10
Marco
Danke für die Hilfe! Es funktioniert!
Gruß, Marco
danke - welchen Datentyp hat Objektverweis ?
11.10.2005 12:55:37
gordon
Hi Nepumuk,
danke für die Info.
Gruß
gordon
Anzeige
AW: danke - welchen Datentyp hat Objektverweis ?
11.10.2005 12:59:19
Nepumuk
Hi gordon,
"welchen Datentyp hat Objektverweis ?"
Variant, Object, oder eine Variable die z.B. für ein Shape als Shape deklariert ist. Intern (im Stackframe) ist das ganze aber eine Zahl vom Typ Long ~ 16 Bit.
Gruß
Nepumuk

Anzeige
Danke für die Erleuchtung
11.10.2005 13:08:45
gordon
Hi Nepomuk,
intern Long erleuchtet meinen Geist ;-) - Klar, dass der Verweis an sich dann auf jedes beliebige Objekt zeigen kann - Hab's bisher nicht gebraucht, potenzielle Anwendungsfälle kann ich mir vorstellen. Mal sehen, wann die bei mir kommen...
Gruß
gordon
;
Anzeige
Anzeige

Infobox / Tutorial

Array verschiedene Datentypen zuweisen in Excel


Schritt-für-Schritt-Anleitung

Um ein mehrdimensionales Array in Excel VBA zu erstellen, das verschiedene Datentypen speichern kann, folge diesen Schritten:

  1. Array deklarieren: Verwende den Variant-Datentyp, um verschiedene Datentypen im Array zu speichern.

    Dim Array(1 To 4, 1 To 2) As Variant
  2. Werte zuweisen: Fülle die Array-Elemente mit verschiedenen Datentypen.

    Array(1, 1) = 1 ' Integer
    Array(1, 2) = txtTextfeld ' Textbox-Objekt
  3. Zugriff auf die Werte: Greife auf die gespeicherten Werte zu, indem Du die entsprechenden Indizes verwendest.

    MsgBox Array(1, 1) ' Gibt die Integer-Zahl aus
    MsgBox Array(1, 2).Text ' Gibt den Text der Textbox aus

Häufige Fehler und Lösungen

  • Fehler: Typkonflikt: Wenn Du versuchst, einen Integer-Wert direkt in ein Objekt zu speichern, kann dies zu einem Typkonflikt führen.

    • Lösung: Stelle sicher, dass Du den Variant-Datentyp verwendest, um solche Konflikte zu vermeiden.
  • Fehler: Objektverweis: Wenn Du versuchst, ein Array-Element als Träger eines Objektverweises zu deklarieren, könnte dies nicht funktionieren.

    • Lösung: Verwende den Variant-Datentyp, um verschiedene Datentypen, einschließlich Objekten, zu speichern.

Alternative Methoden

Eine andere Möglichkeit, verschiedene Datentypen in einem Array zu speichern, ist die Verwendung von Collection-Objekten oder Dictionaries. Diese erlauben eine flexiblere Handhabung von Datentypen.

Dim myCollection As Collection
Set myCollection = New Collection

myCollection.Add 1 ' Integer
myCollection.Add txtTextfeld ' Textbox-Objekt

Praktische Beispiele

Hier ein Beispiel, wie Du ein zweidimensionales Array mit verschiedenen Datentypen füllst:

Sub Beispiel()
    Dim Array(1 To 2, 1 To 2) As Variant

    Array(1, 1) = 5 ' Integer
    Array(1, 2) = "Hallo" ' String
    Array(2, 1) = New MSForms.TextBox ' Textbox-Objekt
    Array(2, 2) = 3.14 ' Double

    MsgBox Array(1, 1) ' Gibt 5 aus
    MsgBox Array(1, 2) ' Gibt "Hallo" aus
End Sub

Tipps für Profis

  • Nutze den Variant-Datentyp, um maximale Flexibilität bei der Handhabung von verschiedenen Datentypen zu gewährleisten.
  • Bei Verwendung von Objekten in Arrays, achte darauf, dass Du die Objekte korrekt instanziierst, um Laufzeitfehler zu vermeiden.
  • Überlege, ob ein Dictionary für Deine Anwendung besser geeignet ist, besonders wenn Du Schlüssel-Wert-Paare benötigst.

FAQ: Häufige Fragen

1. Kann ich verschiedene Datentypen in einem Array speichern? Ja, das geht mit dem Variant-Datentyp, der verschiedene Datentypen in einem Array unterstützen kann.

2. Was ist der Unterschied zwischen Variant und Object in VBA? Variant kann jede Art von Daten speichern, während Object speziell für Objektverweise gedacht ist. In vielen Fällen ist Variant die flexiblere Wahl.

3. Wie kann ich auf Elemente in einem mehrdimensionalen Array zugreifen? Du kannst auf die Elemente mit den Indizes zugreifen, z.B. Array(1, 2) für das Element in der ersten Zeile und der zweiten Spalte.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige