Romero: Excel: nur sichtbare Zeilen auslesen

Hallöchen an Euch da draußen,

ich lese gerade ein Excel-Blatt aus. Beim Auslesen hab ich festgestellt, dass auch die ausgeblendeten Zeilen mit angesteuert werden. Wie kann ich also dem Script sagen, dass nur die sichtbaren Zeilen angesteuert werden sollen?

  
for( var y = 1; y < currentRange.Rows.Count; y++ )  
{  
   if( currentRange.Cells( y, Auslesespalte ).Text != "" )  
   {  
      out.push( currentRange.Cells( y, Auslesespalte ).Text )  
   };  
};

Wo also lege ich in dieser Schleife fest, dass nur die sichtbaren Zeilen ausgelesen werden sollen?

LG Romero

  1. Wo also lege ich in dieser Schleife fest, dass nur die sichtbaren Zeilen ausgelesen werden sollen?

    Mit hidden?

    1. Wo also lege ich in dieser Schleife fest, dass nur die sichtbaren Zeilen ausgelesen werden sollen?

      Mit hidden?

      Daran dachte ich auch schon aber ist das nicht VBA?
      Und wie bau ich das ein?
      Hab es versucht mit:

      if( currentRange.Rows(y).Hidden = true ) { alert("ausgeblendet: " + y) };

      ... um zu überprüfen, ob die Zelle ausgeblendet ist.

      Bei mir sind z.B. die Zeilen 5-8 ausgeblendet. Wenn ich den oberen Syntax nehme, so gibt er mir ebenfalls die Zeilen (anhand des "y"), die eingeblendet sind, mit an.
      Danach eine "Speicherung" der Veränderung der Mappe. Mir kommt es da so vor, als würde ich an der Stelle (s.o), das Ausblenden angeben, aber nicht abfragen.

      LG Romero

      1. Problem gelöst.
        Es hat mit Hidden geklappt.

        Das Problem war bei mir da ich in 2 Sprachen prgrammiere. Einmal in VBA und dann wieder in Javascript.

        Es hing an der if-Anweisung. Unter VBA reicht nur ein "=" zu, unter Javascript muss man natürlich ein "==" setzen, sonst greift die if-Anweisung nicht sondern es werden die Zeilen auf Hidden gesetzt, also ausgeblendet.

        Hier nun der richtige Syntax:

        if( currentRange.Rows(y).Hidden == true ) { alert("ausgeblendet: " + y) };

        Trotzdem danke an unknown.

        LG Romero

        1. @@Romero:

          nuqneH

          Unter VBA reicht nur ein "=" zu, unter Javascript muss man natürlich ein "==" setzen

          Auf der sicheren Seite ist man mit "===".

          Hier nun der richtige Syntax:

          Hier nun eine Stilblüte. _Der_ Syntax ist nicht richtig. Die Syntax ist weiblich.

          if( currentRange.Rows(y).Hidden == true ) { alert("ausgeblendet: " + y) };

          Außerdem liegt die Richtigkeit im Auge des Betrachters. Ich halte Vergleiche gegen true für nicht richtig.

          Sagst du „wenn es wahr ist, dass die Zeile versteckt ist“ oder sagst du „wenn die Zeile versteckt ist“? Also bitte:

          if( currentRange.Rows(y).Hidden ) { alert("ausgeblendet: " + y) };  
          
          

          Qapla'

          --
          „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
          1. @@Romero:

            nuqneH

            Unter VBA reicht nur ein "=" zu, unter Javascript muss man natürlich ein "==" setzen

            Auf der sicheren Seite ist man mit "===".

            Wieder was dazugelernt.

            if( currentRange.Rows(y).Hidden == true ) { alert("ausgeblendet: " + y) };

            Außerdem liegt die Richtigkeit im Auge des Betrachters. Ich halte Vergleiche gegen true für nicht richtig.

            Sagst du „wenn es wahr ist, dass die Zeile versteckt ist“ oder sagst du „wenn die Zeile versteckt ist“? Also bitte:

            if( currentRange.Rows(y).Hidden ) { alert("ausgeblendet: " + y) };

              
            Ok auch wieder wahr. Wenn dann sage ich, "wenn die Zeile versteckt ist, ..." :D  
              
            LG Romero