Om du snabbt vill hämta datastorleken för varje kalkylblad i en Excel-arbetsbok kan du hänvisa till den här artikeln. Här delar vi två praktiska metoder med dig.
Ibland när du arbetar med en Excel-arbetsbok som består av en stor mängd kalkylblad kanske du vill få datastorleken för varje kalkylblad. Det finns dock inte en egen funktion för detta krav. Så du måste använda några lösningar, till exempel följande metod 1. Eller så kan du använda den mycket smartare metod 2 för att få alla kalkylblads datastorlekar i bulk.
Metod 1: Hämta kalkylbladsdatastorlek en efter en manuellt
- Först öppnar du den specifika Excel-arbetsboken.
- Kopiera sedan innehållet i ett Excel-kalkylblad.
- Skapa sedan en ny arbetsbok och klistra in det kopierade kalkylbladet i ark 1.
- Spara senare den nya arbetsboken i en Windows-mapp.
- Slutligen kan du kontrollera den nya arbetsbokens datastorlek, lika med kalkylbladets datastorlek, i Windows Explorer, som visas i följande skärmdump.
- Nu kan du använda detta sätt för att få datastorlekarna för andra kalkylblad en efter en.
Metod 2: Batch Skaffa datastorlekarna för alla kalkylblad via VBA
- Till att börja med öppnar du Excel VBA-redigeraren enligt “Så här kör du VBA-kod i din Excel".
- Lägg sedan in följande kod i ett projekt eller en modul.
Sub GetEachWorksheetSize () Dim strTargetSheetName Som String Dim strTempWorkbook Som String Dim objTargetWorksheet Som kalkylblad Dim objWorksheet Som kalkylblad Dim objRange As Range Dim i As Long Dim nLastEmptyRow As Integer strTargetSheetName = "Arkstorlekar" strTempWorkbook = ThisWorkbook.Path & "\ Temp Workbook.xls" With ActiveWorkbook.Worksheets.Add (Before: = Application.Worksheets (1)) .Name = strTargetSheetName .Cells (1, 1) = "Sheet" .Cells (1, 1) .Font.Size = 14 .Cells (1, 1) .Font.Bold = True .Cells (1, 2) = "Storlek". Celler (1, 2). Font.Size = 14. Celler (1, 2) .Font.Bold = True End With Set objTargetWorksheet = Application.Worksheets (strTargetSheetName) För varje objWorksheet i Application.ActiveWorkbook.Worksheets Om objWorksheet.Name <> strTargetSheetName Sedan objWorksheet.Copy Application.ActiveWorkbook.SaveAs strTempWorkbook Application.ActiveWorkbook.Close SaveChanges: = False nLastEmptyRow = objTargetWorksheet.Range ("A" & objTargetWorksheet.Rows.Count) .End (xlUp) .Row + 1 With objTargetWorksheet .Cells (nLastEmptyRow, 1) = objWorksheet.Name .Cells (nLastEmptyRow, 2) = FileLen (strTempWorkbook) Avsluta med Kill strTempWorkbook Avsluta om nästa slut Sub
- Tryck därefter på "F5" för att köra det här makrot direkt.
- Så småningom, när makro är klar, tillbaka till arbetsboken.
- Du ser ett nytt kalkylblad i början, som innehåller storleken på varje kalkylblad, som följande bild.
Jämförelse
Fördelar | Nackdelar | |
Förfarande 1 | Enkel att använda | För besvärligt om det finns för många kalkylblad i den aktuella arbetsboken |
Förfarande 2 | Enkelt och bekvämt oavsett hur många kalkylblad som finns i arbetsboken | Kanske är ovanstående VBA-kod lite obegriplig för nybörjare |
Åtgärda upprörande PST-problem
Användare kan stöta på alla typer av störande problem i MS Excel, allt från oväntad avstängning eller restart till svår xlsx korruption. Utan tvekan är most knotty problem är skadad Excel-fil genom att den inte kan lösas enkelt. Det kräver att du använder ett externt Excel-fixverktyg, som DataNumen Excel Repair.
Författarintroduktion:
Shirley Zhang är expert på dataåterställning DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive korrupta SQL Server och Outlook-programvara för reparationsprogramvara. För mer information besök www.datanumen.com
Hej, jag känner att jag märkte att du besökte min sida så jag kom hit för att återvända till föredrar?.Jag försöker hitta problem för att förbättra min webbplats! Jag antar att det är tillräckligt för att använda några av dina koncept!!
visas felmeddelandet 1004: kan inte kopiera arbetsbladet
om min excel-fil har totalt 10 kalkylblad och synligt kalkylblad är tre, några misstag??
snälla hjälp till att förbättra kodningen.
Fungerade perfekt efter att jag visade alla flikar. Vad är enheten för lagringsstorlek här? Antar att det är Bits men vill vara säker. Tack!
Det verkar inte fungera om det finns dolda flikar, se till att alla flikar är synliga och det borde vara ok
Ja, det fungerar definitivt inte. Observera samma problem som de andra.
Snälla rätta!
får ett felmeddelande på den här raden...
.Cells(nLastEmptyRow, 2) = FileLen(strTempWorkbook)
.Cells(nLastEmptyRow, 2) = FileLen(strTempWorkbook)
Fungerar inte för mig. Fel i raden ovan i koden.
Detta fungerade INTE för mig. Felet är här ” .Cells(nLastEmptyRow, 2) = FileLen(strTempWorkbook)”
Vad exakt betyder siffrorna från denna metod 2?
Jag har två excel-filer .xlsx sparade med data från en mall. Har använt samma mall de senaste 2 åren. Samma antal arbetsblad (14). Mindre filstorlekar uppgår till 11610591 och är 6681 KB som rapporterats av Windows. Större filstorlekar uppgår till 11717397 och är 25471 KB som rapporterats av Windows.
Denna större filstorlek endast starhar hänt under de senaste 3 dagarna.
Tack så mycket, inga problem när du springer
Samma för mig.
Vänliga Hälsningar
It does not work It stops at objWorksheet.Copy