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

Array in Messagebox ausgeben

Forumthread: Array in Messagebox ausgeben

Array in Messagebox ausgeben
05.09.2017 13:51:04
_Domi_
Hallo zusammen,
folgender Code schreibt aus einer Textbox Zahlen, die mit Leerzeichen getrennt sind in ein Array welches As Variant deklariert ist.
Nun wird aus diesem Array jede Zahl entnommen und es wird ein Code ausgeführt welcher am Ende die Zahl entweder ein ErrorArray (Variant) oder ein NoArray (Variant) einträgt.
Folgender Code, mit dem ich das Array danach in einer Messagebox ausgeben will funktioniert aber nicht, bzw Läuft immer auf Fehler:
Dim txt As String
Dim a As Long
For a = LBound(noErrorArray) To UBound(noErrorArray)
txt = txt & CStr(noErrorArray(a)) & Chr(13)
Next a
Hat jemand eine Idee woran das legen kann?
Gruß Domi
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Es fehlen Deklarationen+Fehlerbeschreibung! owT
05.09.2017 13:58:45
EtoPHG

AW: Es fehlen Deklarationen+Fehlerbeschreibung! owT
05.09.2017 14:02:27
_Domi_
Hallo EtoPHG,
das Array wird weiter oben im Code deklariert (Dim noErrorArray As Variant).
Was muss noch deklariert werden?
Was meinst du mit Fehlerbeschreibung?
Gruß Domi
AW: Es fehlen Deklarationen+Fehlerbeschreibung! owT
05.09.2017 14:24:27
mmat
Hallo,
dem Codeschmibbel fehlt der Befehl, mit dem die Massagebox aufgerufen wird.
Was passiert?
- Fehlermeldung? (zur Laufzeit oder schon vor der Ausführung des Codes ?)
- nix ?
- Leere Massagebox ?
- sonstiger Ungemach ?
vg, MM
Anzeige
AW: Es fehlen Deklarationen+Fehlerbeschreibung! owT
05.09.2017 14:36:56
_Domi_
Hallo,
ich erhalte einen Laufzeitfehler '13': Typen unverträglich. (in der Zeile von dem LBound und UBound)
Wenn ich jedoch anstatt dem noErrorArray das Anfangsarray nehme welches direkt aus der Textbox ausliest funktioniert es.
Hier die Zeile mit der Messagebox, welche jedoch nicht von Relevanz sein dürfte da der Code schon zuvor den Fehler auswirft.
MsgBox "Die Prüfung am '" & Datum & "' für folgende Sachen:" & vbCrLf & txt & "durchgeführt!"
Gruß Domi
Anzeige
AW: Es fehlen Deklarationen+Fehlerbeschreibung! owT
05.09.2017 14:49:56
mmat
Der Fehler deutet darauf hin, dass es ein Problem mit noErrorArray gibt.
Sollte das nicht
dim noErrorArray () as variant

heissen ? (mit Klammern!) Ansonsten muß später im Code ein Redim ausgeführt werden. Das scheint nicht der Fall zu sein, also ist es eine Variable die auf Error 13 läuft.
Ohne den ganzen Code zu sehen, kann ich auch nicht mehr sagen.
Anzeige
AW: Es fehlen Deklarationen+Fehlerbeschreibung! owT
05.09.2017 14:38:21
EtoPHG
Hallo,
1. Warum postest du dann nicht alles?
2. Findest du Zitat: funktioniert aber nicht, bzw Läuft immer auf Fehler: genügend als Fehlerbeschreibung? Ich kann damit nichts anfangen!
Gruess Hansueli
;
Anzeige
Anzeige

Infobox / Tutorial

Array in Messagebox ausgeben


Schritt-für-Schritt-Anleitung

Um ein Array in einer Messagebox auszugeben, kannst du folgenden VBA-Code verwenden:

Dim noErrorArray() As Variant
Dim txt As String
Dim a As Long

' Beispielhafte Deklaration und Initialisierung des Arrays
noErrorArray = Array(1, 2, 3, 4, 5)

' Inhalte des Arrays in die txt-Variable schreiben
For a = LBound(noErrorArray) To UBound(noErrorArray)
    txt = txt & CStr(noErrorArray(a)) & vbCrLf
Next a

' Ausgabe des Arrays in der Messagebox
MsgBox "Die Werte im Array sind:" & vbCrLf & txt

Stelle sicher, dass das Array korrekt deklariert ist. Wenn du das Array als Variant deklarierst, muss es mit Klammern initialisiert werden (z.B. Dim noErrorArray() As Variant), um Laufzeitfehler zu vermeiden.


Häufige Fehler und Lösungen

  1. Laufzeitfehler '13': Typen unverträglich

    • Dieser Fehler tritt auf, wenn das Array nicht korrekt initialisiert oder deklariert ist. Stelle sicher, dass du die Klammern bei der Deklaration verwendest, wie im obigen Beispiel gezeigt.
  2. Leere Messagebox

    • Wenn die Messagebox leer bleibt, könnte es daran liegen, dass das Array keine Werte enthält. Überprüfe, ob das Array ordnungsgemäß mit Werten gefüllt ist.
  3. Fehlermeldung bei LBound oder UBound

    • Wenn du eine Fehlermeldung bei LBound(noErrorArray) oder UBound(noErrorArray) erhältst, könnte das Array nicht initialisiert sein. Vergewissere dich, dass das Array vor der Verwendung mit Werten befüllt wurde.

Alternative Methoden

Wenn du eine alternative Methode zur Ausgabe von Array-Werten in einer Messagebox suchst, kannst du auch die Werte direkt in einer Schleife ausgeben:

Dim noErrorArray As Variant
Dim a As Long

' Beispielhafte Deklaration und Initialisierung des Arrays
noErrorArray = Array(1, 2, 3, 4, 5)

For a = LBound(noErrorArray) To UBound(noErrorArray)
    MsgBox noErrorArray(a)
Next a

Diese Methode zeigt jeden Wert des Arrays in einer separaten Messagebox an.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von MsgBox mit Arrays:

  1. Ein einfaches Array von Zahlen:

    Dim numbers As Variant
    numbers = Array(10, 20, 30)
    
    For Each num In numbers
       MsgBox "Zahl: " & num
    Next num
  2. Ein Array von Textwerten:

    Dim fruits As Variant
    fruits = Array("Äpfel", "Bananen", "Kirschen")
    
    Dim txt As String
    For Each fruit In fruits
       txt = txt & fruit & vbCrLf
    Next fruit
    
    MsgBox "Früchte im Array:" & vbCrLf & txt

Tipps für Profis

  • Verwende Join für eine schnelle Ausgabe: Anstatt eine Schleife zu verwenden, kannst du die Join-Funktion verwenden, um die Werte eines Arrays in einer Messagebox auszugeben.

    MsgBox Join(noErrorArray, vbCrLf)
  • Fehlerprotokollierung: Implementiere eine Fehlerbehandlung in deinem Code, um Laufzeitfehler zu protokollieren und die Quelle des Problems zu identifizieren.

  • Datenvalidierung: Überprüfe immer, ob das Array Werte enthält, bevor du versuchst, diese in einer Messagebox anzuzeigen.


FAQ: Häufige Fragen

1. Wie kann ich ein leeres Array in einer Messagebox anzeigen? Ein leeres Array wird keine Werte zurückgeben. Du solltest sicherstellen, dass das Array mit Werten gefüllt ist, bevor du es in einer Messagebox anzeigst.

2. Was mache ich, wenn ich unterschiedliche Datentypen im Array habe? Wenn dein Array unterschiedliche Datentypen enthält, stelle sicher, dass du die Werte mit CStr konvertierst, um Typkonflikte in der Messagebox zu vermeiden.

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