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
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?
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ß
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
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!
mit nightys vorschlag ist mein Problem gelöst!

