Makro darblapas ievietošanai - Excel padomi

Satura rādītājs

"Iestrēdzis NJ" uzdeva šīs nedēļas jautājumu:

Es veidoju Excel darbgrāmatu, kurā ir pārdošanas rādītāju diagrammas. Pirmā Excel darblapa atbilst uzņēmuma pirmajai pārdošanas teritorijai (piemēram, FL01.) Darblapas cilnes nosaukums (kā arī šūna A1) ir pārdošanas teritorijas numurs FL01. Dati, kas virza diagrammas, atrodas pa labi (ārpus iestatītā drukājamā diapazona) un tiek aizpildīti no citas Excel darbgrāmatas, izmantojot uzmeklēšanas atslēgu VLOOKUP ar pārdošanas teritorijas numuru FL01 šūnā A1. Man darbgrāmatā jāpievieno 76 vienādas darblapas (pa vienai katrai pārdošanas teritorijai) tā, lai katras lapas cilnes nosaukums un šūna A1 būtu vienādi ar secīgiem pārdošanas teritorijas numuriem (piemēram, FL01, FL02, LK01, LK02.) Kā to izdarīt automatizētā veidā?

To var viegli paveikt ar VBA makro, taču ļaujiet man nosegt padomu, lai to izdarītu manuāli. Kad esat izveidojis lapu ar formatējumu un drukas diapazoniem, varat to viegli dublēt, ar peles labo pogu noklikšķinot uz šīs lapas cilnes. Uznirstošajā izvēlnē izvēlieties Pārvietot vai Kopēt. Dialoglodziņā Pārvietot vai kopēt atlasiet “(pārvietot uz beigām)” un atzīmējiet izvēles rūtiņu “Izveidot kopiju”, pēc tam noklikšķiniet uz Labi. Jūsu darblapā kā jauna darblapa tiks pievienota jūsu lapas kopija ar formatējumu. (Lai paātrinātu šo procesu, turiet nospiestu taustiņu Ctrl, vienlaikus velkot darblapas cilni pa labi.) Parasti lapu vēlaties pārdēvēt. Ar peles labo pogu noklikšķiniet uz jaunās cilnes, izvēlieties pārdēvēt un ierakstiet nozīmīgu nosaukumu.

Lai Excel makro darbotos, tam nepieciešams teritoriju saraksts. Pirms makro rakstīšanas ievietojiet šajā grāmatā jaunu lapu ar nosaukumu Dati. Šūnā A1 ievadiet 2. pārdošanas teritoriju (FL02 jūsu piemērā). Turpiniet ievadīt visas pārdošanas teritorijas A apakšējā slejā. Neatstājiet tukšas rindas.

Ievietojiet jaunu makro un nokopējiet šo kodu:

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

Makro izmanto komandu Sheets (). Copy, kas veic to pašu, kas noklikšķināt uz Pārvietot vai Kopēt manuāli. Pirms katras kopijas veikšanas es uzzinu lapu skaitu, izmantojot rekvizītu Sheets.Count. Es zinu, ja ir 56 loksnes, un es ievietoju jaunu lapu, uz to atsauksies kā Loksnes (57). Manuprāt, ir nedaudz neparedzami uzminēt, kā Excel nosauks jauno lapu, tāpēc lapas identificēšanai izmantoju skaitliskus indeksu numurus. Kad es pārdēvēju jauno lapu ar "Sheets (LastSheet + 1) .Name = ThisTerr", pēc tam es varu pārslēgties atpakaļ uz vēlamo metodi, kā atsaukties uz lapu, izmantojot tās nosaukumu.

Ņemiet vērā, ka teritoriju sarakstā sarakstā nedrīkst būt FL01. Mēģinot pārdēvēt kopiju FL01 kopiju ar tādu pašu nosaukumu, makro radīsies kļūda.

Interesanti raksti...