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

Hur kontrollerar jag storleken på varje arbetsblad i arbetsboken?

Om du antar att du har en stor arbetsbok som innehåller flera kalkylblad, och nu vill du ta reda på storleken på varje kalkylblad för att bestämma vilket ark som ska minskas. Finns det några snabba metoder för att hantera denna uppgift?

Kontrollera storleken på varje kalkylblad med VBA-kod

Kontrollera storleken på varje kalkylblad med Kutools för Excel

Fliken Office Aktiverar flikredigering och surfning i Office, och gör ditt arbete mycket enklare ...
Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%
  • Återanvänd allt: Lägg till de mest använda eller komplexa formlerna, diagrammen och allt annat till dina favoriter och återanvänd dem snabbt i framtiden.
  • Mer än 20 textfunktioner: Extrahera nummer från textsträng; Extrahera eller ta bort en del av texterna; Konvertera siffror och valutor till engelska ord.
  • Sammanfoga verktyg: Flera arbetsböcker och ark till en; Slå ihop flera celler / rader / kolumner utan att förlora data; Slå samman duplicerade rader och summa.
  • Dela verktyg: Dela data i flera ark baserat på värde; En arbetsbok för flera Excel-, PDF- eller CSV-filer; En kolumn till flera kolumner.
  • Klistra över Dolda / filtrerade rader; Räkna och summa av bakgrundsfärg; Skicka personliga e-postmeddelanden till flera mottagare i bulk.
  • Superfilter: Skapa avancerade filterscheman och tillämpas på alla ark; Svart per vecka, dag, frekvens och mer; Filter med fetstil, formler, kommentarer ...
  • Mer än 300 kraftfulla funktioner; Fungerar med Office 2007-2021 och 365; Stöder alla språk; Enkel implementering i ditt företag eller organisation.

pil blå höger bubbla Kontrollera storleken på varje kalkylblad med VBA-kod

Med följande VBA-kod kan du snabbt få storleken på varje kalkylblad i din arbetsbok. Gör så här:

1. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Kontrollera storleken på varje kalkylblad i en arbetsbok </ 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. Tryck sedan på F5 nyckel för att köra den här koden och ett nytt kalkylblad med namnet KutoolsforExcel kommer att införas i den aktuella arbetsboken som innehåller varje kalkylbladsnamn och filstorlek, och enheten är Bit. Se skärmdump:

doc-check-sheet-storlek 1


pil blå höger bubbla Kontrollera storleken på varje kalkylblad med Kutools för Excel

Om du har Kutools för Excel, med dess Dela arbetsbok verktyget kan du dela upp hela arbetsboken i separata filer och sedan gå till den specifika mappen för att kontrollera storleken på varje fil.

Kutools för Excel innehåller mer än 300 praktiska Excel-verktyg. Gratis att prova utan begränsning på 30 dagar. Hämta nu.

När du har installerat Kutools för Excel gör du med följande steg:

1. Öppna arbetsboken du vill kontrollera storleken på varje kalkylblad och klicka Företag > Arbetsbokens verktyg > Dela arbetsbok, se skärmdump:

doc-check-sheet-storlek 1

2. I Dela arbetsbok dialogrutan, kolla alla kalkylblad och klicka Split och ange sedan en mapp för att lägga till de nya arbetsboksfilerna. Se skärmdumpar:

doc-check-sheet-storlek 3
-1
doc-check-sheet-storlek 4

3. Och sedan sparas varje kalkylblad i din nuvarande arbetsbok som en separat Excel-fil, du kan gå till din specifika mapp för att kontrollera storleken på varje arbetsbok.

doc-check-sheet-storlek 1

Om du vill veta mer om den här funktionen för delad arbetsbok


Relaterade artiklar:

Hur delar jag en arbetsbok för att separera Excel-filer i Excel?

Hur exporterar och sparar jag ark och kalkylblad som en ny arbetsbok i Excel?


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (9)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Väldigt hjälpsam. Tack!!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för att du tillhandahåller kodavsnittet till allmänheten. Det är en av de bättre rutinerna jag hittat. Här är några justeringar av den: 1) Lägg till "Dim xIndex as Long" överst om du använder Option Explicit. 2) Lägg till detta i For-loopen för att hantera dolda ark (annars kraschar det): xWs.Visible = xlSheetVisible 3) Om du har helsides "diagram"-ark måste du kopiera koden för loopen och iterera genom applikationen. ActiveWorkbook.Charts samling. Om du gör detta, ändra deklarationen av xWs från "Sheet" till "Object". 4) För en billig statusindikator (eller för felsökningsproblem) lägg till den här raden i For-loopen: Debug.Print "Beräkna arbetsbladsstorlekar, ark " & xIndex & " av " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ben! Kan du klistra om hela textsträngen med objekt #2 och #4 från din e-post? MIN VBA-kunskap är ganska begränsad och jag är inte säker på exakt var jag ska lägga till dem i For-slingan. Min arbetsbok har ett antal dolda ark och kraschar hela tiden under makrokörningen. Tack, Bob
Denna kommentar minimerades av moderatoren på webbplatsen
Här är en kopia av rutinen med några förbättringar jag lagt till. Jag var tvungen att dela upp det i flera inlägg på grund av webbplatsens begränsningar. Public Sub WorksheetSizes() 'Update 20140526' https://www.extendoffice.com/documents/excel/1682-excel-check-size-of-each-sheet.html<br />' ' BS 4/4/2016: Ändrad för att ha en statusrad och formatera utdata. ' Fixat för dolda ark som fick den att krascha. ' Lade till stöd för diagramblad Dim xWs As Object ' Arbetsblad eller diagram Dim rng As Range Dim xOutWs As Worksheet Dim xOutFile As String Dim xOutName As String Dim xIndex As Long On Error GoTo ErrorHandler Application.Cursor = xlWait xOutName = "KutoolsforExcel" xOutoolsforExcel ThisWorkbook.Path & "\TempWb.xls" Vid fel Återuppta nästa Application.DisplayAlerts = False Err = 0 Ställ in xOutWs = Application.Worksheets(xOutName) If Err = 0 Then xOutWs.Delete Err = 0 End If With Application.ActiveWorkbook. .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 = Falskt xIndex = 1 Debug.Print ThisWorkbook.Path för varje xWs i Application.ActiveWorkbook.Worksheets Om xWs.Name xOutName Sedan Application.StatusBar = "Beräknar arbetsbladsstorlekar " & xIndexstorlekar av " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name Debug.Print "Beräknar W orksheetsstorlekar, ark " & xIndex & " av " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name DoEvents ' inkluderar detta så att CTRL+Break kan upptäckas. '--- klistra paus ---
Denna kommentar minimerades av moderatoren på webbplatsen
' Del 2 av 3 '--- paste break --- xWs.Visible = xlSheetVisible ' xOutFile = ThisWorkbook.Path & "\" & xWs.Name & ".xls" xWs.CopyQ 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 ' Upprepa ovanstående för diagramblad. För varje xWs i Application.ActiveWorkbook.Charts If xWs.Name xOutName Then Application.StatusBar = "Beräknar kalkylbladsstorlekar, ark " & xIndex & " av " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name Debug. Skriv ut "Beräkna arbetsbladsstorlekar, ark " & xIndex & " av " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name DoEvents ' inkluderar detta så att CTRL+Break kan upptäckas. xWs.Visible = xlSheetVisible xOutFile = ThisWorkbook.Path & "\" & xWs.Name & ".xls" xWs.Copy Application.ActiveWorkbook.SaveAs xOutFile Application.ActiveWorkbook.Close SaveChanges:=False Set rng =Ws.R xOangeut("A ").Offset(xIndex, 1) rng.Resize(0, 1).Value = Array(xWs.Name, VBA.FileLen(xOutFile)) 'Kill xOutFile xIndex = xIndex + 2 End If Next '--- paste break ---
Denna kommentar minimerades av moderatoren på webbplatsen
' Del 3 av 3 '--- paste break --- ' Formatera utdataarket Application.Sheets(xOutName).Aktivera kolumner("B:B").Select Selection.NumberFormat = "#,##0_);( #,##0)" Columns("A:B").Select Columns("A:B").EntireColumn.AutoFit Range("A1").Välj ' Ännu bättre, formatera den som en tabell. 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
Denna kommentar minimerades av moderatoren på webbplatsen
Mycket MycketVeryVeryVery hjälpsam.
Tack!!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack, mycket hjälpsam,
Jag hade en massa onödiga formler i ett ark och jag tog precis bort att filen nu fungerar bra.
Allt detta händer bara för att jag kunde hitta storleken på varje ark,
Tack igen.

Anson
Denna kommentar minimerades av moderatoren på webbplatsen
Bör förmodligen lägga till detta mellan rad 9 och 10 ifall några ark är dolda för att undvika att koden kraschar
För varje xWs i ark: xWs.Visible = Sant: Nästa
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL