Office: Prüfen ob Array gefüllt ist

Helfe beim Thema Prüfen ob Array gefüllt ist in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebes Forum, Ich hab da grad ein mittelschweres Problem, zu dem es - zugegebener Maßen - bereits einige Lösungsvorschläge im Netz gibt, nur... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Zai-Ba, 18. Januar 2014.

  1. Prüfen ob Array gefüllt ist


    Hallo liebes Forum,

    Ich hab da grad ein mittelschweres Problem, zu dem es - zugegebener Maßen - bereits einige Lösungsvorschläge im Netz gibt, nur funktionieren diese bei mir nicht *confused.gif*

    Ich habe Arrays als Public deklariert, um sie nicht ständig zwischen den verschiedenen Subs hin und her übergeben zu müssen.
    In diese Arrays werden Informationen aus externen Exceldateien eingelesen und in meine Übersicht geschrieben.
    Seit dem Jahreswechsel besteht das Problem, dass die Einträge des vergangenen Jahres nicht mehr existieren und aus meiner Sub zum Auslesen leere Arrays rauskommen. Wenn ich die Länge des Arrays prüfen will läuft der Fehlercode 9 (Index außerhalb Bereich) auf. Ist ja auch klar.

    Mein Problem ist, dass ich den Fehler nicht abgefangen bekomme *frown.gif*
    blArray = IsArray(datE_Datum()) --> true
    blFull = Not IsEmpty(datE_Datum()) --> true
    [...] = UBound(datE_Datum()) --> Laufzeitfehler: 9
    On Error Goto ErrH_Aktualisieren scheint ignoriert zu werden.


    Der Vollständigkeit halber habe ich den (anonymisierten) Code mit hinein gepackt.

    Code:
    Gruß, David

    :)
     
  2. Beverly
    Beverly Erfahrener User
    Hi David,

    vielleicht eine Möglichkeit:

    Code:
    Prüfen ob Array gefüllt ist grusz.gif
     
    Beverly, 19. Januar 2014
    #2
  3. Hi David,

    so aus dem Zusammenhang gerissen ist eine Fehleranalyse kaum sinnvoll. Aber 2 Dinge sind mir beim Überfliegen Deines Codes aufgefallen.

    1. Es genügt, die On Error Anweisung nur 1 x (und zwar möglichst am Anfang der Prozedur) einzufügen.
    2. Du rufst sie nach Aufruf von Call Init auf. Aber.... was passiert in der Init-Prozedur? Rufst Du da schon die Arrays auf?
     
  4. Prüfen ob Array gefüllt ist

    Ich würde nicht einen Stein in den See werfen, um dann nachfolgend diesen Stein zu suchen.

    Die Information auf keine Werte sollte bereits die "Sub zum Auslesen" in nachvollziehbarer Form liefern.

    Da könnte man auch noch einmal nachdenken:
    Wenn ich etwas übergebe, weiß ich, was das ist. Wenn ich das dem Übernehmer mitteile, weiß er es auch.

    Wenn ich mir etwas greife, wo jeder damit rumspielen kann, muss ich erst prüfen, was das und in welchen Zustand das ist.

    Kannst Du für Deine Fälle definieren, was gefüllt bedeutet?
    Wie genau erzeugst Du die Arrays?

    Bei Deklaration "Dim Arr( 5, 8) AS String" wird bereits der benötigte Speicher belegt, und die Einzelelemente sind nicht leer, sondern enthalten bei einem Stringarray den Wert "". Das könnte man als leer interpretieren, aber eben auch nicht, wenn es bei der ausgelesenen Tabelle auch Leerfelder gibt. Dann ist leer eine konkrete Information und kein Kriterium für "nichts".
     
  5. Wow, vielen Dank für die vielen guten Ansätze *eek.gif*


    @Beverly:
    gute, schnelle Lösung. So funktioniert's.
    Was mich nur wurmt ist, dass ich nicht verstehe, warum der Debugger (trotz 'On Error Goto ErrH_...') in meinem Fall den Laufzeitfehler ausgegeben hat, statt in den Errorhandler zu springen.


    @R J:
    das mit dem doppelten 'On Error Goto' ist ein Relikt aus meiner Fehlersuche. Wollte probieren, ob der Sprung in eine andere Sub an dem Zustand was ändert und hab's danach nicht mehr rausgeschmissen.


    @ebs:
    Das mit dem Stein gefällt mir *Smilie
    Das ist wohl die sauberste Sache.
    Dass ich die Arrays nicht sauber übergebe liegt wohl an einer gewissen Faulheit meinerseits.
    Mein Problem war das, was ich im ersten post beschrieben hatte:

    IsArray liefert wahr,
    IsEmpty liefert false.
    Sprich: ich habe ein Array, welches nicht leer ist und trotzdem hat
    UBound() einen Fehler ausgespuckt *confused.gif*


    Da es sich um ein Skript handelt, was ich für mich geschrieben habe, werde ich Beverlys quick&dirty-Lösung (nichts-für-Ungut) hernehmen.


    Vielen Dank noch mal für die schnelle Hilfe.

    Gruß, David
     
  6. Hallo

    die Funktion isempty ist nur für Variant(en) sinnvoll, ein Array auf initialisierung hin kannst du damit nicht überprüfen. Um ein Array hin zu überprüfen ob es dimensioniert ist reicht ein
    if (not DeinArray) -1 then
     
Thema:

Prüfen ob Array gefüllt ist

Die Seite wird geladen...
  1. Prüfen ob Array gefüllt ist - Similar Threads - Prüfen Array gefüllt

  2. Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung

    in Microsoft Excel Hilfe
    Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung: Hallo zusammen, ich habe mit etwas verheddert und hoffe auf Eure Hilfe. Die Felder B111 und B112 sind zu Beginn LEER. B111 bietet ein Dropdown-Menü an, welches im Falle der Auswahl "Angebot mit...
  3. Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz

    in Microsoft Excel Hilfe
    Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz: Hallo zusammen, ich habe einen Code, bei dem ich mehrere voneinander getrennte Zellen auf Befüllung prüfe. Wenn ich mindestens eine nicht befülle, erscheint eine Fehlermeldung und das Script...
  4. mit String aus Formular Übereinstimmung in Abfrage prüfen

    in Microsoft Access Hilfe
    mit String aus Formular Übereinstimmung in Abfrage prüfen: Hallo liebe Mitglieder Ich verzweifle wieder einmal fast und wende mich an Euch. Ich möchte gern aus einem Formular heraus (Click) prüfen, ob übereinstimmende Datensätze in einer Abfrage vorhanden...
  5. Wartungstermine prüfen und ausgeben

    in Microsoft Excel Hilfe
    Wartungstermine prüfen und ausgeben: Guten Tag zusammen. Ich hoffe ihr könnt mir helfen. Ich möchte mir eine Übersicht erstellen, die mir anzeigt, ob eine Wartung überfällig ist oder nicht. Und zudem ausgibt, wie lange sie...
  6. zwei Zellen prüfen steht was drinnen dann schreib text

    in Microsoft Excel Hilfe
    zwei Zellen prüfen steht was drinnen dann schreib text: Hallo zusammen, mein Problem wenn in der Zelle A1 oder A2 größer 1 dann schreib Text in A3 VG Michael
  7. Mehrere Auswertungen zum prüfen von Nichtnormal- und Normalverteilung

    in Microsoft Excel Hilfe
    Mehrere Auswertungen zum prüfen von Nichtnormal- und Normalverteilung: Morgen, Ich hab eine Exceltabelle mit mehreren Tests erstellt, von Anderson-Darling bis Shapiro-Wilk. Ist noch nix aufgeräumt, noch Version 0.1 quasi. Sinn ist es 23 Zahlen zu prüfen die im...
  8. wert aus ComboBox prüfen dann hinzufügen

    in Microsoft Excel Hilfe
    wert aus ComboBox prüfen dann hinzufügen: Gutn Morgen zusammen, mit folgendem Code fülle ich meine ComboBox Private Sub UserForm_initialize() With ComboBox1 For Repeatings = 2 To...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden