Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Feststellen, ob oder wieviel Elemente ein StrukturArray enthält





Frage

Hallo, ich habe folgendes Problem: ich habe eine Struktur definiert [code]Type MessDatenInfo sFileName as string iAnzahlKurven As Integer ... End Type [/code], dann ein Array deklariert [code]Dim tInfo() as DatenInfo[/code] Nun möchte ich beim Dimensionieren des Arrays abfragen, ob schon Elemente vorhanden sind, damit bei der folgenden initialisierung keine schon vorhandenen Datensätze überschrieben werden. Die Funktion Ubound funktioniert aber nur beim Datentyp Variant, nud erzeugt eine Fehlermeldung wenn der Code [code]lAnzahlDatensaetze = Ubound(tInfo)[/code] aufgerufen wird. Gibt es eine andere Möglichkeit? Vielen Dank im Voraus für Eure Mühe

Antwort 1 von CaroS

Hallo erne,

vielleicht ist es einfach nur ein Schreibfehler: Prüfe mal

Type MessDatenInfo
...
End Type

und

Dim tInfo() as DatenInfo,

ob Du das nur hier unterschiedlich geschrieben hast oder auch in Deinem Programm.

Gruß,
CaroS

Antwort 2 von erne

hallo CaroS
danke für die schnelle Antwort,

nein ich habe mich nur hier im Forum verschrieben.
Aber ich merke grade, dass ich das Problem nicht korrekt beschrieben habe:
Ubound funktioniert, wenn das Array initialisiert wurde, und gibt die Fehlermeldung nur dann aus, wenn kein Element existiert.

Wie kann ich denn verhindern, dass beim ersten Funktionsaufruf, wenn das Array noch nicht dimensioniert ist, diese fehlermeldung kommt?

Antwort 3 von fürLau

Hallo

Indem Du die Ubound()-Funktion erst dann verwendest, wenn das Feld dimensioniert ist.

Gruß

Antwort 4 von nighty

hi all :)

eine variante

gruss nighty

erste makro zum ermitteln deines fehlercodes,darstellung in A1

zweite makro verzweigung anhand des fehlercodes

Option Explicit
Sub test()
On Error GoTo fehler
rem dein code
End
fehler:
Range("A1") = Err
Resume Next
End Sub

Sub test1()
On Error GoTo fehler
rem dein code
End
fehler:
If Err = DeinFehlerCode Then
rem dein code
Resume Next
End If
End Sub

Antwort 5 von erne

Danke schön an alle,

mit nightys vorschlag ist mein Problem gelöst!