Macro per inserire il foglio di lavoro - Suggerimenti per Excel

Sommario

"Stuck in NJ" ha posto la domanda di questa settimana:

Sto creando una cartella di lavoro Excel che contiene grafici dei dati di vendita. Il primo foglio di lavoro Excel corrisponde al primo territorio di vendita della società (ad es. FL01.) Il nome della scheda del foglio di lavoro (così come la cella A1) è il numero del territorio di vendita FL01. I dati che guidano i grafici sono a destra (al di fuori dell'intervallo stampabile che ho impostato) e vengono popolati da un'altra cartella di lavoro Excel utilizzando CERCA.VERT con il numero di territorio di vendita FL01 nella cella A1 come chiave di ricerca. Devo aggiungere alla cartella di lavoro 76 fogli di lavoro identici (uno per ogni territorio di vendita) in modo tale che il nome della scheda di ogni foglio e la cella A1 siano uguali ai numeri di territorio di vendita successivi (ad esempio FL01, FL02, LK01, LK02.) Come posso farlo in un modo automatizzato?

Questo è facilmente realizzabile con una macro VBA, ma lasciatemi coprire il suggerimento per farlo manualmente. Dopo aver impostato un foglio con la formattazione e gli intervalli di stampa, puoi facilmente duplicare il foglio facendo clic con il pulsante destro del mouse sulla scheda per quel foglio. Dal menu che si apre, scegli Sposta o Copia. Dalla finestra di dialogo Sposta o Copia, seleziona "(sposta alla fine)" e seleziona la casella "Crea una copia", quindi fai clic su OK. Una copia del foglio con la formattazione verrà aggiunta come nuovo foglio di lavoro nella cartella di lavoro. (Per accelerare questo processo, tieni premuto il tasto Ctrl mentre trascini la scheda del foglio di lavoro a destra.) Di solito vorrai rinominare il foglio. Fai clic con il pulsante destro del mouse sulla nuova scheda, scegli Rinomina e digita un nome significativo.

Affinché la macro di Excel funzioni, è necessario un elenco di territori. Prima di scrivere la macro, inserisci un nuovo foglio in questo libro denominato Data. Nella cella A1, inserisci il 2 ° territorio di vendita (FL02 nel tuo esempio). Continuare a inserire tutti i territori di vendita nella colonna A. Non lasciare righe vuote.

Inserisci una nuova macro e copia questo codice:

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

La macro fa uso del comando copia di Fogli (). Che fa la stessa cosa che fare clic su Sposta o Copia manualmente. Prima di fare ogni copia, scopro il numero di fogli usando la proprietà Sheets.Count. So che se ci sono 56 fogli e inserisco un nuovo foglio, verrà indicato come Fogli (57). Trovo alquanto imprevedibile indovinare come Excel chiamerà il nuovo foglio, quindi utilizzo i numeri di indice numerico per identificare il foglio. Dopo aver rinominato il nuovo foglio con "Sheets (LastSheet + 1) .Name = ThisTerr", posso tornare al mio metodo preferito per fare riferimento al foglio utilizzando il suo nome.

Tieni presente che l'elenco dei territori non deve contenere FL01 nell'elenco. Il tentativo di rinominare una copia una copia di FL01 con lo stesso nome causerà un errore nella macro.

Articoli interessanti...