Telefonszámunk: 1-472-0679

ReDim (1 to p)

Kezdőlap Fórumok Excel programozás ReDim (1 to p)

3 bejegyzés megtekintése - 1-3 / 3
  • Szerző
    Bejegyzés
  • #5573
    Titok
    Felhasználó

      Sziasztok!

      Lehet valahogy úgy használni a ReDim-et, hogy (1 to parameter) legyen a tömb?

      Így megy, csak így figyelni kell az ugratásra a ciklusokban.
      Eddig még nem jött velem szembe megoldás, ezért kérdezném.

      Dim sh() As String

      lap = Sheets.Count
      ReDim sh(lap)

      For i = 0 To lap – 1
      sh(i) = Sheets(i + 1).Name
      Next i

      For i = 1 To lap

      Sheets(sh(i – 1)).Activate
      f = Cells(1, 3).Value
      Sheets(„Másol”).Activate
      Cells(i + 2, 1).Value = f
      Cells(i + 2, 2).Value = sh(i – 1)

      Next i

      #5574
      delila
      Felhasználó

        Ha nem a ReDim a lényeg, akkor egyszerűbben is megoldható 1 ciklusban.

        Sub mmm()
            Dim i As Integer
            For i = 1 To Sheets.Count - 1 'utolsó lap a Másol nevű
                Sheets(i).Cells(1, 3).Copy Sheets("Másol").Cells(i + 1, 1)
                Sheets("Másol").Cells(i + 1, 2) = Sheets(i).Name
            Next i
        End Sub

        nem próbáltam ki a ReDim-et. 🙂

        #5576
        horvimi
        Adminisztrátor

          Ha viszont a Redim a lényeg, akkor beállítható, hogy a tömböket ne nullától, hanem 1-től indexelje, csak nme javasolt.
          A modul tetejére (ahová az option explicit szokott kerülni) be kell írni, hogy

          Option Base 1

          De ez nem a legjobb megoldás, inkább deklarációkor szokták megadni, hogy a tömb mettől meddig megy alapból.

          Dim Sh() as string   'Dinamikus tömb
          
          Megy a progi ... majd egyszer csak méret növelés, az eddigiek megőrzésével
          
          Redim Preserve sh(1 to új méret)

          Preserve nélkül újra dimenzionálja a tömböt, de eldobja a tartalmát. Ja, és az 1-el megadod azt is, hogy 1-től fogja indexelni.

          Amíg még nincs tartalma, elég a Redim önállóan.
          Ciklusban feltöltögetve dinamikusan már kell a Preserve is.

          Imre

          • A hozzászólás módosításra került: 5 years, 10 months telt el-horvimi.
        3 bejegyzés megtekintése - 1-3 / 3
        • Be kell jelentkezni a hozzászóláshoz.