Если вы хотите быстро получить размер данных каждого рабочего листа в книге Excel, вы можете обратиться к этой статье. Здесь мы поделимся с вами двумя удобными методами.
Иногда при работе с рабочей книгой Excel, состоящей из большого количества рабочих листов, может потребоваться получить размер данных каждого рабочего листа. Однако встроенной функции для этого требования нет. Итак, вам нужно использовать некоторые обходные пути, такие как следующий метод 1. Или вы можете использовать гораздо более умный метод 2, чтобы получить объем данных всех рабочих листов.
Метод 1: получить размер данных рабочего листа один за другим вручную
- Сначала откройте конкретную книгу Excel.
- Затем скопируйте содержимое рабочего листа Excel.
- Затем создайте новую книгу и вставьте скопированный лист на лист 1.
- Позже сохраните новую книгу в папке Windows.
- Наконец, вы можете проверить размер данных новой рабочей книги, равный размеру данных рабочего листа, в проводнике Windows, как показано на следующем снимке экрана.
- Теперь вы можете использовать этот способ для получения размеров данных других рабочих листов один за другим.
Метод 2: Пакетное получение размеров данных всех рабочих листов через VBA
- Для начала откройте редактор Excel VBA согласно «Как запустить код VBA в вашем Excel».
- Затем поместите следующий код в проект или модуль.
Sub GetEachWorksheetSize () Dim strTargetSheetName As String Dim strTempWorkbook As String Dim objTargetWorksheet As Worksheet Dim objWorksheet As Worksheet Dim objRange As Range Dim i As Long Dim nLastEmptyRow As Integer strTargetSheetName = "Размеры листов" strTempWorkbook = ThisWorkbook.Path & "\Temp Workbook.xls" With ActiveWorkbook.Worksheets.Add(Before:=Application.Worksheets(1)) .Name = strTargetSheetName .Cells(1, 1) = "Лист".Cells(1, 1).Font.Size = 14 .Cells(1, 1).Font.Bold = True .Cells(1, 2) = "Размер" . Cells(1, 2).Font.Size = 14 .Cells(1, 2).Font.Bold = True End With Set objTargetWorksheet = Application.Worksheets(strTargetSheetName) Для каждого objWorksheet в Application.ActiveWorkbook.Worksheets Если objWorksheet.Name <> strTargetSheetName Затем objWorksheet.Copy Application.ActiveWorkbook.SaveAs strTempWorkbook Application.ActiveWorkbook.Close SaveChanges:=False nLastEmptyRow = objTargetWorksheet.Range("A" & objTargetWorksheet.Rows.Count).End(xlUp).Row + 1 с objTargetWorksheet .Cells(nLastEmptyRow, 1) = objWorksheet.Name .Cells(nLastEmptyRow, 2) = FileLen(strTempWorkbook) End With Kill strTempWorkbook End If Next End Sub
- После этого нажмите «F5», чтобы сразу запустить этот макрос.
- В конце концов, после завершения макроса, вернитесь к книге.
- В самом начале вы увидите новый рабочий лист, который содержит размер каждого рабочего листа, как показано на следующем рисунке.
сравнение
Преимущества | Недостатки бонуса без депозита | |
Метод 1 | Простота в эксплуатации | Слишком хлопотно, если в текущей книге слишком много рабочих листов |
Метод 2 | Легко и удобно, независимо от того, сколько рабочих листов существует в книге. | Возможно, приведенный выше код VBA немного непонятен для новичков. |
Исправить раздражающие проблемы с PST
Пользователи могут столкнуться со всевозможными неприятными проблемами в MS Excel, начиная от неожиданного выключения илиtarт к серьезному xlsx-повреждение. Бесспорно, мost запутанная проблема - это поврежденный файл Excel, который не может быть легко решен. Это требует от вас применения внешнего инструмента исправления Excel, например DataNumen Excel Repair.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая и коррумпированных лиц SQL Server и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com
Здравствуйте, я чувствую, что заметил, что вы посетили мой сайт, поэтому я пришел сюда, чтобы вернуть предпочтение? Я пытаюсь найти проблемы для улучшения моего веб-сайта! Думаю, достаточно использовать некоторые из ваших концепций!
появляется сообщение об ошибке 1004: не удается скопировать лист
если в моем файле excel всего 10 рабочих листов, а видимый рабочий лист - три, какие-либо ошибки ??
пожалуйста, помогите улучшить кодировку.
Работал отлично после того, как я показал все вкладки. Какова здесь единица хранения? Предполагая, что это биты, но хочу быть уверенным. Спасибо!
Кажется, это не работает, если есть скрытые вкладки, убедитесь, что все вкладки видны, и все должно быть в порядке.
Да, точно не работает. Обратите внимание на ту же проблему, что и другие.
Пожалуйста исправьте!
получить ошибку в этой строке....
.Cells(nLastEmptyRow, 2) = FileLen(strTempWorkbook)
.Cells(nLastEmptyRow, 2) = FileLen(strTempWorkbook)
Не работает для меня. Ошибка в приведенной выше строке кода.
Это НЕ сработало для меня. Ошибка здесь: «.Cells(nLastEmptyRow, 2) = FileLen(strTempWorkbook)»
Что именно означают числа, полученные в результате этого метода 2?
У меня есть два файла excel .xlsx, сохраненные с данными из шаблона. Пользуюсь одним и тем же шаблоном последние 2 года. Одинаковое количество рабочих листов (14). Меньшие размеры файловых листов в сумме составляют 11610591 и составляют 6681 КБ, как сообщает Windows. Сумма больших файловых листов составляет 11717397 и составляет 25471 КБ, как сообщает Windows.
Этот больший размер файла только сtarчто произошло за последние 3 дня.
Спасибо большое, проблем с запуском нет
Мне то же самое.
С уважением
Это не работает. Он останавливается на objWorksheet.Copy.