Makró a munkalap beszúrásához - Excel tippek

Tartalomjegyzék

"Megakadt NJ-ben" feltette a hét kérdését:

Készítek egy Excel munkafüzetet, amely az eladási adatok táblázatait tartalmazza. Az első Excel munkalap megfelel a vállalat első értékesítési területének (pl. FL01.) A munkalap fülének neve (valamint az A1 cella) az értékesítési terület FL01 száma. A diagramokat vezérlő adatok jobbra vannak (az általam beállított nyomtatási tartományon kívül), és egy másik excel munkafüzetből kerülnek feltöltésre, a VLOOKUP használatával, az A1 cellában az FL01 értékesítési terület számmal. Hozzá kell adnom a munkafüzethez 76 egyforma munkalapot (mindegyik értékesítési területhez egyet) úgy, hogy minden lap fülének neve és A1 cellája megegyezzen az egymást követő értékesítési területek számával (pl. FL01, FL02, LK01, LK02.) Hogyan tudom ezt megtenni egy automatizált módon?

Ez könnyen megvalósítható egy VBA makróval, de hadd fedezzem le a tippet, hogy ezt manuálisan végezzem. Miután beállított egy lapot formázással és nyomtatási tartományokkal, könnyedén megkettőzheti a lapot, ha jobb gombbal kattint az adott lap fülére. A felbukkanó menüben válassza az Áthelyezés vagy a Másolás lehetőséget. Az Áthelyezés vagy másolás párbeszédpanelen válassza a "(mozgás a végére)" lehetőséget, és jelölje be a "Másolat létrehozása" négyzetet, majd kattintson az OK gombra. A formázott munkalapjának egy példányát új munkalapként hozzáadja a munkafüzetéhez. (A folyamat felgyorsításához tartsa lenyomva a Ctrl billentyűt, miközben jobbra húzza a munkalap fület.) Általában át akarja nevezni a lapot. Kattintson a jobb gombbal az új fülre, válassza az Átnevezés lehetőséget, és írjon be egy értelmes nevet.

Az Excel makró működéséhez a területek listájára van szükség. Mielőtt megírná a makrót, helyezzen be egy új lapot ebbe a könyvbe, Adatok néven. Az A1 cellában adja meg a 2. értékesítési területet (a példában FL02). Folytassa az összes értékesítési terület megadását az A oszlopban. Ne hagyjon üres sort.

Helyezzen be egy új makrót, és másolja ezt a kódot:

Public Sub CopyIt() Sheets("Data").Select ' Determine how many territories are on Data sheet FinalRow = Range("A65000").End(xlUp).Row ' Loop through each territory on the data sheet For x = 1 To FinalRow LastSheet = Sheets.Count Sheets("Data").Select ThisTerr = Range("A" & x).Value ' Make a copy of Fl01 and move to end Sheets("FL01").Copy After:=Sheets(LastSheet) ' rename the sheet and set A1 = to the territory name Sheets(LastSheet + 1).Name = ThisTerr Sheets(ThisTerr).Select Range("A1").Value = ThisTerr Next x End Sub

A makró a Sheets (). Copy parancsot használja, amely ugyanazt csinálja, mint a Kézi áthelyezés vagy Másolás gombra kattintás. Minden másolat elkészítése előtt megtudom a lapok számát a Sheets.Count tulajdonság használatával. Tudom, hogy van 56 lap, és behelyezek egy új lapot, erre a lapra hivatkozunk (57). Kicsit kiszámíthatatlannak találom, hogy kitaláljam, hogyan nevezi el az Excel az új lapot, ezért numerikus indexszámokat használok a lap azonosítására. Miután átneveztem az új lapot a "Sheets (LastSheet + 1) .Név = ThisTerr" névvel, akkor a neve használatával visszatérhetek a lapra való hivatkozás preferált módszerére.

Vegye figyelembe, hogy a területek listája nem tartalmazhatja az FL01-t a listában. Ha megpróbálja átnevezni egy másolatát az FL01 azonos nevű példányának, hibát okoz a makróban.

érdekes cikkek...