Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як перевірити розмір кожного аркуша книги?

Припустимо, у вас є велика книга, яка містить кілька аркушів, і тепер ви хочете дізнатись розмір кожного аркуша, щоб визначити, який аркуш потрібно зменшити. Чи існують швидкі методи вирішення цього завдання?

Перевірте розмір кожного аркуша за допомогою коду VBA

Перевірте розмір кожного аркуша за допомогою Kutools для Excel

Вкладка Office Увімкніть редагування та перегляд вкладок в Office та значно спростіть свою роботу ...
Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%
  • Повторне використання будь-чого: Додайте найбільш уживані або складні формули, діаграми та будь-що інше до вибраного та швидко використовуйте їх у майбутньому.
  • Більше 20 функцій тексту: Витяг номера з текстового рядка; Витяг або видалення частини текстів; Перетворення чисел і валют в англійські слова.
  • Злиття інструментів: Кілька робочих книжок та аркушів в одне ціле; Об’єднати кілька клітинок / рядків / стовпців без втрати даних; Об’єднати повторювані рядки та суму.
  • Розділити інструменти: Розділити дані на кілька аркушів на основі значення; Одна робоча книга до декількох файлів Excel, PDF або CSV; Один стовпець на кілька стовпців.
  • Пропустити вставку Приховані / відфільтровані рядки; Граф і сума за кольором тла; Надіслати персоналізовані електронні листи кільком одержувачам масово.
  • Суперфільтр: Створюйте розширені схеми фільтрів і застосовуйте їх до будь-яких аркушів; сортувати за тижнями, днями, періодичністю тощо; фільтр жирним шрифтом, формули, коментар ...
  • Понад 300 потужних функцій; Працює з Office 2007-2019 та 365; Підтримує всі мови; Простота розгортання на вашому підприємстві чи в організації.

стрілка синя права міхур Перевірте розмір кожного аркуша за допомогою коду VBA


За допомогою наведеного нижче коду VBA ви можете швидко отримати розмір кожного аркуша у вашій книзі. Будь ласка, зробіть так:

1. Утримуйте клавішу ALT + F11 і відкриває Вікно Microsoft Visual Basic для програм.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код VBA: Перевірте розмір кожного аркуша в книзі </ 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. Потім натисніть F5 ключ для виконання цього коду та новий аркуш із назвою KutoolsforExcel буде вставлено в поточну книгу, яка містить ім’я кожного робочого аркуша та розмір файлу, а одиницею є біт. Дивіться знімок екрана:

doc-check-sheet-size1


стрілка синя права міхур Перевірте розмір кожного аркуша за допомогою Kutools для Excel

Якщо у вас є Kutools для Excel, З його Роздільна робоча книга Ви можете розділити всю книгу на окремі файли, а потім перейти до певної папки, щоб перевірити розмір кожного файлу.

Kutools для Excel включає більше 300 зручних інструментів Excel. Безкоштовно спробувати без обмежень протягом 30 днів. Отримати зараз.

Після встановлення Kutools для Excel виконайте такі дії:

1. Відкрийте книгу, для якої потрібно перевірити розмір кожного її аркуша, та натисніть підприємство > Інструменти робочої книги > Роздільна робоча книга, див. скріншот:

doc-check-sheet-size1

2, в Роздільна робоча книга діалогове вікно, перевірте всі аркуші та натисніть розщеплений , а потім вкажіть папку, куди слід додати нові файли книги. Дивіться скріншоти:

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

3. І тоді кожен аркуш вашої поточної книги буде збережений як окремий файл Excel, ви можете перейти до вашої конкретної папки, щоб перевірити розмір кожної книги.

doc-check-sheet-size1

Щоб дізнатись більше про цю функцію розділеної робочої книги.


Статті по темі:

Як розділити книгу на окремі файли Excel у програмі Excel?

Як експортувати та зберегти аркуші та аркуші як нову книгу в Excel?


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Rodolfo Solis · 8 months ago
    Should probably add this between lines 9 and 10 in case some sheets are hidden to avoid the code crashing

    For Each xWs In Sheets: xWs.Visible = True: Next
  • To post as a guest, your comment is unpublished.
    Anson · 1 years ago
    Thank you, very helpful,
    I had a bunch of unnecessary formulas in a sheet and i just deleted that the file now works fine.
    All these happen only because i could find the size of each sheet,
    Thanks again.

    Anson
  • To post as a guest, your comment is unpublished.
    Juliana · 2 years ago
    Very VeryVeryVeryVery helpful.
    Thank you!!
  • To post as a guest, your comment is unpublished.
    Ben S. · 5 years ago
    ' Part 3 of 3
    '--- paste break ---

    ' Format the output sheet
    Application.Sheets(xOutName).Activate
    Columns("B:B").Select
    Selection.NumberFormat = "#,##0_);(#,##0)"
    Columns("A:B").Select
    Columns("A:B").EntireColumn.AutoFit
    Range("A1").Select
    ' Even better, format it as a table.
    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
  • To post as a guest, your comment is unpublished.
    Ben S. · 5 years ago
    ' Part 2 of 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

    ' Repeat the above for chart sheets.
    For Each xWs In Application.ActiveWorkbook.Charts
    If xWs.Name xOutName Then
    Application.StatusBar = "Calculating Worksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name
    Debug.Print "Calculating Worksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name
    DoEvents ' include this so CTRL+Break can be detected.

    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 ---
  • To post as a guest, your comment is unpublished.
    Ben S. · 5 years ago
    Here is a copy of the routine with a few enhancements I added. I had to break it into multiple posts due to the site limits.

    Public Sub WorksheetSizes()
    'Update 20140526
    ' https://www.extendoffice.com/documents/excel/1682-excel-check-size-of-each-sheet.html
    '
    ' BS 4/4/2016: Modified to have a status bar and format the output.
    ' Fixed for hidden sheets that caused it to crash.
    ' Added support for Chart sheets

    Dim xWs As Object ' Worksheet or Chart
    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"
    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

    Debug.Print ThisWorkbook.Path

    For Each xWs In Application.ActiveWorkbook.Worksheets
    If xWs.Name xOutName Then
    Application.StatusBar = "Calculating Worksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name
    Debug.Print "Calculating Worksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name
    DoEvents ' include this so CTRL+Break can be detected.
    '--- paste break ---
  • To post as a guest, your comment is unpublished.
    Bob M · 5 years ago
    Hey Ben,
    Could you repaste the whole string of text with items #2 and #4 from your email added in? MY VBA knowledge is pretty limited and I'm not sure exactly where to add them into the For loop. My workbook has a number of hidden sheets and keeps crashing during the macro execution.

    Thanks,
    Bob
  • To post as a guest, your comment is unpublished.
    Ben S. · 5 years ago
    Thanks for providing the code snippet to the public. It's one of the better routines I found. Here are a few tweaks to it:
    1) Add "Dim xIndex as Long" to the top if you're using Option Explicit.
    2) Add this inside the For loop to handle hidden sheets (otherwise it crashes): xWs.Visible = xlSheetVisible
    3) If you have full page "chart" sheets, you need to copy the code for the loop and iterate through the Application.ActiveWorkbook.Charts collection. If you do this, change the declaration of xWs from "Sheet" to "Object".
    4) For a cheap status indicator (or for debugging issues) add this line inside the For loop: Debug.Print "Calculating Worksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name
  • To post as a guest, your comment is unpublished.
    Anand · 7 years ago
    Very helpful.
    Thank you!!