Macro pentru a insera foaia de lucru - Sfaturi Excel

Cuprins

„Stuck in NJ” a pus întrebarea din această săptămână:

Creez un registru de lucru Excel care conține diagrame ale cifrelor de vânzări. Prima foaie de lucru Excel corespunde primului teritoriu de vânzări din companie (de exemplu, FL01.) Numele filei de foaie de lucru (precum și celula A1) este numărul teritoriului de vânzări FL01. Datele care conduc diagramele sunt în dreapta (în afara intervalului imprimabil pe care l-am setat) și sunt populate dintr-un alt registru de lucru Excel utilizând VLOOKUP cu numărul teritoriului de vânzări FL01 în celula A1 ca cheie de căutare. Trebuie să adaug în registrul de lucru 76 de foi de lucru identice (una pentru fiecare teritoriu de vânzări) astfel încât numele filei și celula A1 a fiecărei foi să fie egale cu numerele succesive de teritoriu de vânzare (de exemplu, FL01, FL02, LK01, LK02.) Cum fac asta într-un mod automatizat?

Acest lucru se realizează cu ușurință cu o macro VBA, dar permiteți-mi să acopăr sfatul pentru a face acest lucru manual. Odată ce ați configurat o foaie cu formatarea și intervalele de imprimare, puteți duplica cu ușurință foaia făcând clic dreapta pe fila pentru foaia respectivă. Din meniul care apare, alegeți Mutare sau Copiere. Din caseta de dialog Mutare sau Copiere, selectați „(mutați până la sfârșit)” și bifați caseta „Creați o copie”, apoi faceți clic pe OK. O copie a foii dvs. cu formatare va fi adăugată ca o foaie de lucru nouă în registrul de lucru. (Pentru a accelera acest proces, țineți apăsată tasta Ctrl în timp ce glisați fila Foaie de lucru spre dreapta.) De obicei, veți dori să redenumiți foaia. Faceți clic dreapta pe noua filă, alegeți redenumirea și tastați un nume semnificativ.

Pentru ca macro-ul Excel să funcționeze, are nevoie de o listă de teritorii. Înainte de a scrie macrocomanda, introduceți o foaie nouă în această carte numită Date. În celula A1, introduceți al 2-lea teritoriu de vânzări (FL02 în exemplul dvs.). Continuați să introduceți toate teritoriile de vânzare în coloana A. Nu lăsați niciun rând gol.

Introduceți o nouă macrocomandă și copiați acest cod:

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

Macrocomanda folosește comanda Sheets (). Copy care face același lucru ca și clic pe Mutare sau Copiere manuală. Înainte de a face fiecare copie, aflu numărul de foi folosind proprietatea Sheets.Count. Știu dacă sunt 56 de coli și introduc o nouă foaie, va fi menționată ca foi (57). Mi se pare oarecum imprevizibil să ghicesc cum Excel va numi noua foaie, așa că folosesc numere index numerice pentru a identifica foaia. Odată ce am redenumit noua foaie cu „Foi (LastSheet + 1) .Name = ThisTerr”, pot reveni la metoda preferată de referire la foaie folosind numele acesteia.

Rețineți că lista teritoriilor nu ar trebui să conțină FL01 în listă. Încercarea de a redenumi o copie o copie a FL01 cu același nume va provoca o eroare în macro.

Articole interesante...