Autor Thema: Arrayappend mit leerem Array bringt type mismatch  (Gelesen 3543 mal)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Hallo allerseits,

kurz vor Weihnachten möchte ich Euch nochmal zeigen, wie schlechts bei mir mit Arrays aussieht.

Code
Dim vSG As Variant
Dim vschl(0) As String
vschl(0) = "test"
vSG = Arrayappend (vSG,vschl)

Bringt immer Type mismatch.

Sicher, weil das Array vSG noch leer ist, oder?  :-:
Muss ich das Array vorher mit Redim mindestens den Index 0 verpassen?
Oder mit IsEmpty testen? Aber auch da muss ich doch redimmen.

Oder denke ich in die völlig falsche Richtung?

Danke Euch schonmal für die Hilfe.

Sebastian
« Letzte Änderung: 23.12.10 - 14:14:19 von theBastian »
Domino, Notes, Sametime

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Arrayappend mit leerem Array bringt type mismatch
« Antwort #1 am: 23.12.10 - 12:01:00 »
Die Frage ist, was Du erreichen möchtest. Wenn vsg nichts beinhaltet, was soll dann passieren?

Probier mal

If IsArray (vsg) Then
  vsg = ArrayAppend (vsg, vSchl)
Else
   vsg = vSchl
End If

Falls bei leerem vsg ein leerer Eintrag angenommen wird, führst du das von Dir genannte Redim vorher aus

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Arrayappend mit leerem Array bringt type mismatch
« Antwort #2 am: 23.12.10 - 12:04:17 »
Hallo,

Also fuer mich waere die Hilfe zu ArrayAppend schon aussagekraeftiog genug.
Zitat
ArrayAppend throws a Type mismatch error if:
sourceArray1 is not an array

Andreas

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Arrayappend mit leerem Array bringt type mismatch
« Antwort #3 am: 23.12.10 - 13:29:06 »
Danke Euch, habs verstanden.

Also immer erst prüfen, ob es schon ein Array ist und dann ArrayAppend.
Aber wie kann ich ich ein Array dimensionieren, dass leer ist, damit ArrayAppend auch ohne den vorherigen Test mit IsArray funktioniert?

Domino, Notes, Sametime

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Arrayappend mit leerem Array bringt type mismatch
« Antwort #4 am: 23.12.10 - 13:55:14 »
Es gibt kein Array ohne Elemente

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Arrayappend mit leerem Array bringt type mismatch
« Antwort #5 am: 23.12.10 - 14:00:05 »
Leer heisst wahrscheinlich indem Fall, dem Element des Arrays ist noch kein Wert zugewiesen.
Also nach dem Motto

Dim vSG(0)

vSG1 = ArrayAppend(vSG, Array2)


Andreas

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Arrayappend mit leerem Array bringt type mismatch
« Antwort #6 am: 23.12.10 - 14:03:51 »
Es gibt kein Array ohne Elemente

Ach darum hat es nicht funktioniert.  :-[
Aber dank Deines Beispiels hab ich es lösen können.
Für alle, die ähnliche Fragen haben, hier meine Lösung.

Code
If Isarray (vSG) Then
vSG = Fulltrim(Arrayappend (vSG,schl))
Else
Redim vSG(0)       
vSG(0) = schl

Dabei ist schl ein String.

Grüße und Schöne Weihnachten.
Sebastian
Domino, Notes, Sametime

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Arrayappend mit leerem Array bringt type mismatch
« Antwort #7 am: 23.12.10 - 14:05:31 »
Leer heisst wahrscheinlich indem Fall, dem Element des Arrays ist noch kein Wert zugewiesen.
Also nach dem Motto

Dim vSG(0)

vSG1 = ArrayAppend(vSG, Array2)

Ich wollte für vSG aber nicht zwei Arrays verwenden. Und das scheint nicht zu gehen, wenn vSG noch kein Array ist.
Domino, Notes, Sametime

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz