Hirdetés

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

  • Mutt

    senior tag

    válasz oke #40006 üzenetére

    Szia,

    Ez az Excel 1993-ig használt makró nyelve, "Excel 4 macro" kulcsszóra keresve még találsz hozzá súgót,
    Valószínű több sorod van mint amit megadtál, de a sorok a következőket csinálják:

    1. =LÉP("i";2;DARAB2(!$B:$B);1)
    Ez egy FOR - NEXT ciklus; lesz vhol egy sorod KÖVETKEZŐ() paranccsal. Ami ezen sorok között van azt fogja annyiszor végrehajtani ahány adatod van a B-oszlopban. Létrehoz egy i nevű változót, amit 2-es értékről indít és növeli folyamatosan amíg a kívánt darabszámot el nem éri. A képlet végén az 1, a lépésköz.

    Szószerinti VBA megfelelője pedig:

    Dim i As Long

    For i = 2 To WorksheetFunction.CountA(Range("B:B")) Step 1
    'lépések
    Next i

    2. =KIJELÖL("S6O1")
    Kijelöli a 6-os sor 1 oszlopának metszetét, vagyis az A6-os cellát. RC (row-column, magyarul SO - sor-oszlop) hivatkozás van használva, Valószínű ez egy felesleges lépés, általában a kijelölés után egy művelet szokott jönni amit lehet kijelölés nélkül is végrehajtani.

    VBA megfelelője:

    Cells(6, 1).Select

    3. =KIJELÖL(ÖSSZEFŰZ("S";i;"O3"))
    Itt is egy kijelölés van, csak felhasználjuk a FOR-NEXT ciklusban létrehozott változót, vagyis a harmadik oszlop sorain megyünk végig.

    Dim i As Long

    For i = 2 To WorksheetFunction.CountA(Range("B:B")) Step 1
    Cells(3, i).Select
    'egyéb lépések
    Next i

    4. =KÉPLET(A10)
    Ez nem makró függvény, hanem az egyik beépített függvény, amely megmondja, hogy az A10-es cella képletet tartalmaz-e vagy sem?

    Szószerinti VBA megfelelője:

    van_benne_keplet = WorksheetFunction.IsFormula(Range("A10"))

    Hatékonyabb változat:

    van_benne_keplet = Range("A10").HasFormula

    Érdemes az Excel 4 makrót lecserélni.
    Ha feldobod, hogy mi a feladat akkor kapni fogsz segítséget a fórumon.

    üdv

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