100 likes | 194 Views
Visual Basic for Application (VBA). Ciklusok, függvények. Feladatok. Készíts makrót, ami a egy táblázatban felcseréli az A és a D oszlopot, az E oszlopot pedig áthelyezi a B elé! Készíts makrót, ami egy táblázat első (fejléc) sorát 15 soronként megismétli!
E N D
Visual Basic forApplication (VBA) Ciklusok, függvények
Feladatok • Készíts makrót, ami a egy táblázatban felcseréli az A és a D oszlopot, az E oszlopot pedig áthelyezi a B elé! • Készíts makrót, ami egy táblázat első (fejléc) sorát 15 soronként megismétli! • Ehhez első lépésben vegyél fel egy makrót, ami az adott lapon kijelöli, majd másolja az első sort, ezután 15 sort lejjebb megy, és beilleszti a másolt tartalmat! • Következő lépésben oldd meg, hogy addig ismétlődjön a lejjebb lépés/beillesztés, amig üres sorhoz nem érünk! • Haladó: oldd meg, hogy a másolás előtt egy üres sort is szúrjon be a fejlécnek a makró!
Emlékeztető • Elágazás: IffeltételThen teendők ha feltétel igaz Else teendők ha feltétel nem igaz End if
Emlékeztető • Ciklus: DoUntilfeltétel teendők (ciklusmag) lépés a következő elemre! Loop • Addig ismétli a ciklusmagot, amig a feltétel igazzá nem válik. • Létezik hátultesztelős változat, ami legalább egyszer mindenképpen lefut, illetve Until helyett While-t használó, ami akkor áll le, ha a feltétel hamissá válik.
Feladatok • Készíts makrót, ami egy oszlop elemein végigszalad, és ha egymás utáni ismétlődést talál, törli az ismétlődő elemet tartalmazó cellát! Figyelj oda, hogy a makró akkor is jól működjön, ha egymás után többször ismétlődik egy elem! A lépésenkénti futtatás segíthet. • Készíts makrót, ami „észreveszi” és jelöli valahogy, ha egy növekvően rendezett listában hibás, tehát az előtte lévőnél kisebb elemet talál!
Feladatok • A http://vacip.web.elte.hu/excel/feladatok/VBA tárhelyről töltsd le a VBA3.xls-t, és oldd meg rajta a következő feladatokat! • A BP balances lapon: • Készíts függvényt, ami az első oszlop számaiból kihámozza a számot! Tehát le kell vágni az USD-t, el kell hagyni a fölösleges szóközöket, a csillagot és a vesszőt, és a tizedespontot tizedesvesszőre kell cserélni. • Ezután készíts makrót, ami az A oszlopon végigszalad az aljáig, és minden cellát lecserél a letisztított számra!
Feladatok • A dátumok lapon található számokat alakítsd dátummá! Az első egy vagy két karakter a nap, utána a hónap, majd az év következik. Készíts egy függvényt, ami minden alakra univerzálisan működik (Kell: HA()/IF(), DÁTUM()/DATE(), BAL()/LEFT(), KÖZÉP()/MID(), JOBB()/RIGHT(), HOSSZ()/LEN()). • Ezután a fentihez hasonlóan készíts makrót, ami lecseréli a számokat valódi sátumokra!
Fejléc ismételgető Sub fejléc_másoló() Cells(1, 1).Activate ActiveCell.Offset(15, 0).Select DoUntilActiveCell.Value = "" ActiveCell.EntireRow.Insert_ shift:=xlDown Rows("1:1").Copy ActiveSheet.Paste ActiveCell.Offset(15, 0).Select Loop Application.CutCopyMode = False End Sub
Ismétlődők törlése Subism_törl1() DoUntilActiveCell.Value = "" IfActiveCell.Value= _ ActiveCell.Offset(1, 0).ValueThen Selection.Delete Else ActiveCell.Offset(1, 0).Select End If Loop End Sub