Note: The other languages of the website are Google-translated. Back to English

Come controllare la dimensione di ogni foglio di lavoro della cartella di lavoro?

Supponendo di avere una cartella di lavoro di grandi dimensioni che contiene più fogli di lavoro e ora, si desidera scoprire la dimensione di ciascun foglio di lavoro per determinare quale foglio deve essere ridotto. Esistono metodi rapidi per affrontare questa attività?

Controlla la dimensione di ogni foglio di lavoro con il codice VBA

Controlla la dimensione di ogni foglio di lavoro con Kutools per Excel

Scheda Office Abilita la modifica a schede e la navigazione in Office e semplifica notevolmente il lavoro ...
Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%
  • Riutilizza qualsiasi cosa: Aggiungi le formule, i grafici e qualsiasi altra cosa più usati o complessi ai tuoi preferiti e riutilizzali rapidamente in futuro.
  • Più di 20 funzioni di testo: Estrai numero dalla stringa di testo; Estrai o rimuovi parte di testi; Converti numeri e valute in parole inglesi.
  • Unisci strumenti: Più cartelle di lavoro e fogli in uno; Unisci più celle / righe / colonne senza perdere dati; Unisci righe duplicate e somma.
  • Strumenti di divisione: Suddivisione dei dati in più fogli in base al valore; Una cartella di lavoro su più file Excel, PDF o CSV; Da una colonna a più colonne.
  • Incolla Salto Righe nascoste / filtrate; Count And Sum di Background Color; Invia e-mail personalizzate a più destinatari in blocco.
  • Super filtro: Crea schemi di filtri avanzati e applicali a qualsiasi foglio; Riordina per settimana, giorno, frequenza e altro; Filtro in grassetto, formule, commenti ...
  • Più di 300 potenti funzionalità; Funziona con Office 2007-2021 e 365; Supporta tutte le lingue; Facile implementazione nella tua azienda o organizzazione.

freccia blu freccia destra Controlla la dimensione di ogni foglio di lavoro con il codice VBA

Con il seguente codice VBA, puoi ottenere rapidamente le dimensioni di ciascun foglio di lavoro nella cartella di lavoro. Per favore, fai come segue:

1. Tieni premuto il ALT + F11 chiavi e apre il file Finestra di Microsoft Visual Basic, Applications Edition.

2. Clic inserire > Moduloe incolla il codice seguente nel file Finestra del modulo.

Codice VBA: controlla la dimensione di ogni foglio di lavoro in una cartella di lavoro </ p>

Sub WorksheetSizes()
'Update 20140526
Dim xWs As Worksheet
Dim Rng As Range
Dim xOutWs As Worksheet
Dim xOutFile As String
Dim xOutName As String
xOutName = "KutoolsforExcel"
xOutFile = ThisWorkbook.Path & "\TempWb.xls"
On Error Resume Next
Application.DisplayAlerts = False
Err = 0
Set xOutWs = Application.Worksheets(xOutName)
If Err = 0 Then
    xOutWs.Delete
    Err = 0
End If
With Application.ActiveWorkbook.Worksheets.Add(Before:=Application.Worksheets(1))
    .Name = xOutName
    .Range("A1").Resize(1, 2).Value = Array("Worksheet Name", "Size")
End With
Set xOutWs = Application.Worksheets(xOutName)
Application.ScreenUpdating = False
xIndex = 1
For Each xWs In Application.ActiveWorkbook.Worksheets
    If xWs.Name <> xOutName Then
        xWs.Copy
        Application.ActiveWorkbook.SaveAs xOutFile
        Application.ActiveWorkbook.Close SaveChanges:=False
        Set Rng = xOutWs.Range("A1").Offset(xIndex, 0)
        Rng.Resize(1, 2).Value = Array(xWs.Name, VBA.FileLen(xOutFile))
        Kill xOutFile
        xIndex = xIndex + 1
    End If
Next
Application.ScreenUpdating = True
Application.Application.DisplayAlerts = True
End Sub

3. Quindi premere F5 chiave per eseguire questo codice e un nuovo foglio di lavoro denominato Kutools per Excel verrà inserito nella cartella di lavoro corrente che contiene il nome di ciascun foglio di lavoro e la dimensione del file e l'unità è Bit. Vedi screenshot:

doc-check-sheet-size1


freccia blu freccia destra Controlla la dimensione di ogni foglio di lavoro con Kutools per Excel

Se si dispone di Kutools for Excel, Con la sua Cartella di lavoro divisa utility, puoi dividere l'intera cartella di lavoro in file separati, quindi andare alla cartella specifica per controllare la dimensione di ogni file.

Kutools for Excel include più di 300 utili strumenti Excel. Prova gratuita senza limitazioni per 30 giorni. Get it Now.

Dopo aver installato Kutools per Excel, esegui i seguenti passaggi:

1. Apri la cartella di lavoro di cui desideri controllare le dimensioni di ciascun foglio di lavoro e fai clic su Impresa > Strumenti della cartella di lavoro > Cartella di lavoro divisa, vedi screenshot:

doc-check-sheet-size1

2. Nel Cartella di lavoro divisa finestra di dialogo, controlla tutti i fogli di lavoro e fai clic su Diviso e quindi specificare una cartella in cui inserire i nuovi file della cartella di lavoro. Vedi screenshot:

doc-check-sheet-size3
-1
doc-check-sheet-size4

3. E poi ogni foglio di lavoro della tua cartella di lavoro corrente verrà salvato come file Excel separato, puoi andare alla tua cartella specifica per controllare la dimensione di ogni cartella di lavoro.

doc-check-sheet-size1

Per saperne di più su questa funzionalità della cartella di lavoro divisa.


Articoli correlati:

Come dividere una cartella di lavoro per separare i file Excel in Excel?

Come esportare e salvare fogli e fogli di lavoro come nuova cartella di lavoro in Excel?


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (9)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Molto utile. Grazie!!
Questo commento è stato fatto dal moderatore sul sito
Grazie per aver fornito lo snippet di codice al pubblico. È una delle routine migliori che ho trovato. Ecco alcune modifiche: 1) Aggiungi "Dim xIndex as Long" in alto se stai usando Option Explicit. 2) Aggiungi questo all'interno del ciclo For per gestire i fogli nascosti (altrimenti si arresta in modo anomalo): xWs.Visible = xlSheetVisible 3) Se hai fogli "grafici" a pagina intera, devi copiare il codice per il ciclo e scorrere l'applicazione. Collezione ActiveWorkbook.Charts. Se lo fai, cambia la dichiarazione di xWs da "Sheet" a "Object". 4) Per un indicatore di stato economico (o per problemi di debug) aggiungi questa riga all'interno del ciclo For: Debug.Print "Calculating Worksheet Sizes, Sheet" & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " -" & xWs.Nome
Questo commento è stato fatto dal moderatore sul sito
Ehi Ben, potresti incollare nuovamente l'intera stringa di testo con gli elementi n. 2 e n. 4 della tua e-mail aggiunti? LA MIA conoscenza di VBA è piuttosto limitata e non sono sicuro di dove aggiungerli al ciclo For. La mia cartella di lavoro ha un numero di fogli nascosti e continua a bloccarsi durante l'esecuzione della macro. Grazie, Bob
Questo commento è stato fatto dal moderatore sul sito
Ecco una copia della routine con alcuni miglioramenti che ho aggiunto. Ho dovuto suddividerlo in più post a causa dei limiti del sito. Public Sub WorksheetSizes() 'Aggiorna 20140526 ' https://www.extendoffice.com/documents/excel/1682-excel-check-size-of-each-sheet.html<br />' ' BS 4/4/2016: modificato per avere una barra di stato e formattare l'output. ' Risolto il problema con i fogli nascosti che causavano l'arresto anomalo. ' Aggiunto supporto per i fogli grafico Dim xWs As Object ' Foglio di lavoro o grafico Dim rng As Range Dim xOutWs As Worksheet Dim xOutFile As String Dim xOutName As String Dim xIndex As Long On Error Vai a ErrorHandler Application.Cursor = xlWait xOutName = "KutoolsforExcel" xOutFile = ThisWorkbook.Path & "\TempWb.xls" In caso di errore Riprendi successiva Application.DisplayAlerts = False Err = 0 Imposta xOutWs = Application.Worksheets(xOutName) Se Err = 0 Quindi xOutWs.Delete Err = 0 Termina se con Application.ActiveWorkbook.Worksheets .Add(Before:=Application.Worksheets(1)) .Name = xOutName .Range("A1").Resize(1, 2).Value = Array("Worksheet Name", "Size") Termina con Set xOutWs = Application.Worksheets(xOutName) Application.ScreenUpdating = False xIndex = 1 Debug.Print ThisWorkbook.Path per ogni xWs in Application.ActiveWorkbook.Worksheets Se xWs.Name xOutName Then Application.StatusBar = "Calcolo delle dimensioni del foglio di lavoro, foglio " & xIndex & " di " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name Debug.Print "Calcolo W orksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name DoEvents ' includono questo in modo che CTRL+Break possa essere rilevato. '--- incolla interruzione ---
Questo commento è stato fatto dal moderatore sul sito
' Parte 2 di 3 '--- incolla interruzione --- xWs.Visible = xlSheetVisible ' xOutFile = ThisWorkbook.Path & "\" & xWs.Name & ".xls" xWs.CopyQ Application.ActiveWorkbook.SaveAs xOutFile Application.ActiveWorkbook .Chiudi SaveChanges:=False Imposta rng = xOutWs.Range("A1").Offset(xIndex, 0) rng.Resize(1, 2).Value = Array(xWs.Name, VBA.FileLen(xOutFile)) Kill xOutFile xIndex = xIndex + 1 End If Next ' Ripetere quanto sopra per i fogli grafici. Per ogni xWs in Application.ActiveWorkbook.Charts Se xWs.Name xOutName Then Application.StatusBar = "Calcolo delle dimensioni del foglio di lavoro, foglio " & xIndex & " di " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name Debug. Stampa "Calcolo delle dimensioni del foglio di lavoro, foglio " & xIndex & " di " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name DoEvents ' includono questo in modo che CTRL+Break possa essere rilevato. xWs.Visible = xlSheetVisible xOutFile = ThisWorkbook.Path & "\" & xWs.Name & ".xls" xWs.Copy Application.ActiveWorkbook.SaveAs xOutFile Application.ActiveWorkbook.Close SaveChanges:=False Set rng = xOutWs.Range("A1 ".Offset(xIndex, 0) rng.Resize(1, 2).Value = Array(xWs.Name, VBA.FileLen(xOutFile)) 'Kill xOutFile xIndex = xIndex + 1 End If Next '--- paste break ---
Questo commento è stato fatto dal moderatore sul sito
' Parte 3 di 3 '--- incolla interruzione --- ' Formatta il foglio di output Application.Sheets(xOutName).Activate Columns("B:B").Seleziona Selection.NumberFormat = "#,##0_);( #,##0)" Columns("A:B").Seleziona colonne("A:B").EntireColumn.AutoFit Range("A1").Seleziona ' Ancora meglio, formattalo come una tabella. ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:B" & xIndex), , xlYes).Name = "WorksheetSizes" Application.ScreenUpdating = True Application.Application.DisplayAlerts = True Application.StatusBar = "" Application.Cursor = xlDefault Exit Sub ErrorHandler: MsgBox "Error #" & Err.Number & " - " & Err.Description & vbCrLf & "in procedure WorksheetSizes" End Sub
Questo commento è stato fatto dal moderatore sul sito
Molto molto molto molto molto utile.
Grazie!!
Questo commento è stato fatto dal moderatore sul sito
Grazie, molto utile,
Avevo un sacco di formule non necessarie in un foglio e ho appena cancellato che il file ora funziona correttamente.
Tutto ciò accade solo perché ho potuto trovare la dimensione di ogni foglio,
Grazie ancora.

Anson
Questo commento è stato fatto dal moderatore sul sito
Probabilmente dovrebbe aggiungerlo tra le righe 9 e 10 nel caso in cui alcuni fogli siano nascosti per evitare il crash del codice
Per ogni xWs in fogli: xWs.Visible = True: Next
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL