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

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

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

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

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


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

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-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

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

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (9)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Дуже корисний. Дякую!!
Цей коментар був мінімізований модератором на сайті
Дякуємо за надання загальнодоступному фрагменту коду. Це одна з кращих процедур, які я знайшов. Ось кілька налаштувань: 1) Додайте «Dim xIndex as Long» у верхній частині, якщо ви використовуєте Option Explicit. 2) Додайте це всередині циклу For для обробки прихованих аркушів (інакше він аварійно завершує роботу): xWs.Visible = xlSheetVisible 3) Якщо у вас є аркуші «діаграми» на всю сторінку, вам потрібно скопіювати код циклу та повторювати програму. Колекція ActiveWorkbook.Charts. Якщо ви це зробите, змініть оголошення xWs з «Sheet» на «Object». 4) Для дешевого індикатора стану (або для проблем з налагодженням) додайте цей рядок усередину циклу For: Debug.Print «Обчислення розмірів аркушів, аркуша « & xIndex & » of « & ActiveWorkbook.Worksheets.count - 1 & « - » & xWs.Name
Цей коментар був мінімізований модератором на сайті
Привіт, Бене, чи не могли б ви вставити весь рядок тексту з елементами №2 і №4 з вашої електронної пошти? Мої знання VBA досить обмежені, і я не знаю, куди їх додати до циклу For. У моїй книзі є кілька прихованих аркушів і вона постійно виходить з ладу під час виконання макросу. Дякую, Боб
Цей коментар був мінімізований модератором на сайті
Ось копія процедури з кількома вдосконаленнями, які я додав. Мені довелося розбити його на кілька дописів через обмеження сайту. Public Sub WorksheetSizes() 'Оновлення 20140526' https://www.extendoffice.com/documents/excel/1682-excel-check-size-of-each-sheet.html<br />' ' BS 4/4/2016: змінено, щоб мати рядок стану та форматувати вихідні дані. ' Виправлено для прихованих аркушів, які спричиняли його збій. ' Додана підтримка аркушів діаграм Dim xWs As Object ' Worksheet або 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. ThisWorkbook.Path & "\TempWb.xls" При помилці Відновити наступне Application.DisplayAlerts = False Err = 0 Встановити xOutWs = Application.Worksheets(xOutName) Якщо Err = 0 Тоді xOutWs.Delete Err = 0 Завершити, якщо з Application.Worksheets.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 для кожного xWs в Application.ActiveWorkbook.Worksheets Якщо xWs.Name xOutName Then Application.StatusBar = "CalculatingIn Worksheet S & Shedex " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name Debug.Print "Обчислення W Розміри аркуша, аркуш " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name DoEvents ' включають це, щоб можна було виявити CTRL+Break. '--- вставити розрив ---
Цей коментар був мінімізований модератором на сайті
' Частина 2 з 3 '--- розрив вставки --- 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 ' Повторіть вищенаведене для аркушів діаграм. Для кожного xWs в Application.ActiveWorkbook.Charts Якщо xWs.Name xOutName Then Application.StatusBar = "Обчислення розмірів аркушів, аркуша " & xIndex & " з " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name Налагодження. Надрукуйте «Розрахунок розмірів аркушів, аркуша « & xIndex & « з « & ActiveWorkbook.Worksheets.count - 1 & « - « & xWs.Name DoEvents ', щоб можна було виявити CTRL+Break. xWs.Visible = xlSheetVisible xOutFile = This Workbook.Path & "\" & xWs.Name & ".xls" xWs.Copy Application.ActiveWorkbook.SaveAs xOutFile Application.ActiveWorkbook.Close SaveChanges:=FalseO Set rns1. xRangeO Set rns0. ").Offset(xIndex, 1) rng.Resize(2, 1).Value = Array(xWs.Name, VBA.FileLen(xOutFile)) 'Знищити xOutFile xIndex = xIndex + XNUMX End If Next '--- вставити розрив ---
Цей коментар був мінімізований модератором на сайті
' Частина 3 з 3 '--- вставити розрив --- ' Відформатуйте вихідний аркуш Application.Sheets(xOutName).Activate Columns("B:B").Виберіть Selection.NumberFormat = "#,##0_);( #,##0)" Columns("A:B").Select Columns("A:B").EntireColumn.AutoFit Range("A1").Select ' Ще краще, відформатуйте його як таблицю. ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:B" & xIndex), , xlYes).Name = "WorksheetSizes" Application.ScreenUpdating = True Application.Application.DisplayAlerts = True Application.StatusBar = "" Application.Curs xlDefault Exit Sub ErrorHandler: MsgBox "Error #" & Err.Number & " - " & Err.Description & vbCrLf & "in procedure WorksheetSizes" End Sub
Цей коментар був мінімізований модератором на сайті
Дуже-дуже-дуже-дуже корисно.
Дякую!!
Цей коментар був мінімізований модератором на сайті
Дякую, дуже корисно,
У мене була купа непотрібних формул на аркуші, і я щойно видалив, що файл тепер працює нормально.
Все це відбувається лише тому, що я міг знайти розмір кожного аркуша,
Знову дякую.

Ансон
Цей коментар був мінімізований модератором на сайті
Можливо, слід додати це між рядками 9 і 10, якщо деякі аркуші приховані, щоб уникнути збою коду
Для кожного xWs In Sheets: xWs.Visible = True: Next
There are no comments posted here yet

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL