Makrokomanda darbalapiui įterpti - „Excel“ patarimai

Turinys

„Įstrigęs NJ“ uždavė šios savaitės klausimą:

Kuriu „Excel“ darbaknygę, kurioje yra pardavimo rodiklių diagramos. Pirmasis „Excel“ darbalapis atitinka pirmąją įmonės pardavimo teritoriją (pvz., FL01.) Darbalapio skirtuko pavadinimas (taip pat langelis A1) yra pardavimo teritorijos numeris FL01. Duomenys, vedantys diagramas, yra dešinėje (už mano nustatyto spausdinimo diapazono ribų) ir yra užpildomi iš kitos „Excel“ darbaknygės, naudojant paieškos langelį VLOOKUP su pardavimo teritorijos numeriu FL01 langelyje A1. Turiu pridėti prie darbaknygės 76 vienodus darbalapius (po vieną kiekvienai pardavimo teritorijai), kad kiekvieno lapo skirtuko pavadinimas ir langelis A1 būtų lygūs nuosekliems pardavimo teritorijos numeriams (pvz., FL01, FL02, LK01, LK02.) Kaip tai padaryti automatizuotas būdas?

Tai lengvai pasiekiama naudojant VBA makrokomandą, bet leiskite padengti patarimą, kaip tai padaryti rankiniu būdu. Sukūrę lapą su formatavimo ir spausdinimo diapazonais, galite lengvai nukopijuoti lapą dešiniuoju pelės mygtuku spustelėdami to lapo skirtuką. Iššokančiame meniu pasirinkite Perkelti arba Kopijuoti. Dialogo lange Perkelti arba kopijuoti pasirinkite „(pereiti į pabaigą)“ ir pažymėkite laukelį „Kurti kopiją“, tada spustelėkite Gerai. Lapo kopija su formatavimu bus įtraukta kaip naujas darbalapis į darbaknygę. (Norėdami pagreitinti šį procesą, laikydami nuspaudę klavišą Ctrl, vilkdami darbalapio skirtuką į dešinę.) Paprastai norėsite pervadinti lapą. Dešiniuoju pelės mygtuku spustelėkite naują skirtuką, pasirinkite pervadinti ir įveskite prasmingą pavadinimą.

Kad „Excel“ makrokomanda veiktų, jai reikia teritorijų sąrašo. Prieš rašydami makrokomandą, į šią knygą įterpkite naują lapą pavadinimu Duomenys. Langelyje A1 įveskite 2-ąją pardavimo teritoriją (FL02 jūsų pavyzdyje). Toliau įveskite visas pardavimo teritorijas A stulpelyje. Nepalikite tuščių eilučių.

Įterpkite naują makrokomandą ir nukopijuokite šį kodą:

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

Makrokomanda naudoja komandą Sheets (). Copy, kuri daro tą patį, ką spustelėti Perkelti arba Kopijuoti rankiniu būdu. Prieš atlikdamas kiekvieną egzempliorių, naudodamasis ypatybe „Sheets.Count“, sužinosiu lapų skaičių. Žinau, jei yra 56 lapai, ir įdedu naują lapą, jis bus nurodytas kaip „Lakštai“ (57). Manau, kad nenuspėjama atspėti, kaip „Excel“ pavadins naują lapą, todėl lapui identifikuoti naudoju skaitmeninius indekso numerius. Kai pervardysiu naują lapą naudodamas „Sheets (LastSheet + 1) .Name = ThisTerr“, tada galėsiu grįžti prie mano pageidaujamo lapo nuorodos metodo, naudodamas jo pavadinimą.

Atminkite, kad teritorijų sąraše sąraše neturėtų būti FL01. Bandant pervadinti kopiją FL01 kopija tuo pačiu pavadinimu, makrokomandoje bus klaida.

Įdomios straipsniai...