Hirdetés

Új hozzászólás Aktív témák

  • martonx
    veterán

    Sziasztok, még mindig ez előzményekben lévő makró megírása.
    Jelenleg itt tartok:
    Sub nyomtatas()
    s1 = 1
    s2 = 1
    o1 = 1

    Do While e1 < e2
    s2 = s1 + 1
    e2 = Cells(s2, 1).Value
    e1 = Cells(s1, 1).Value
    Do While Cells(s2, 1) = Empty
    s2 = s1 + 1
    Loop
    sork = s1
    sorv = s2
    Loop
    ' a nyomtatás részhez még nem kezdtem hozzá, ezt azért tettem bele, hogy lássam, milyen terülere vonatkozik a fentebbi kód
    For t = sork To sorv
    Cells(1, 20).Value = s2
    Cells(t, o1).Interior.Color = vbYellow
    Next

    End Sub

    , tudom, hogy nem jó, és, hogy mennyire jó poén tárgyává váltam, de ezt most hagyjuk!! :)))
    Lenne néhány kérdésem:
    - Lehet úgy változót deklarálni, hogy a do while utasítás alatt található? Vagy már korábban meg kéne tennem?
    - Jelenleg végtelen ciklus jön létre az excel kifagy. elvileg a Do While Cells(s2, 1) = Empty sor nem ennek elkerülésére lenne?
    - a kijelölésre a ActiveSheet.Range(Cells(s1, o1), Cells(s2, o2)).Select sor jó lehet? - o2 lesz majd később, még nincs
    Előre is köszönöm

    Szerintem kezdjük azzal, hogy pontosan mi is az a részfeladat amit ezzel a kóddal meg szeretnél oldani?
    Egyébként a kód első ránézésre nagyon túlbonyolítottnak tűnik.

    Pl ez helyett:

    Do While e1 < e2
    s2 = s1 + 1
    e2 = Cells(s2, 1).Value
    e1 = Cells(s1, 1).Value

    elég lenne ez:

    Do While Cells(s1, 1).Value < Cells(s2, 1).Value
    s2 = s1 + 1

    Ráadásul s1-et nem is növeled, szóval az s1 is felesleges, ha az mindig fix 1

    "- Lehet úgy változót deklarálni, hogy a do while utasítás alatt található? Vagy már korábban meg kéne tennem?"
    Persze, miért ne lehetne

Új hozzászólás Aktív témák