Раздутый файл Excel

кто-то отправить мне файл Excel, который 10 МБ, и, таким образом, вызывает у нас проблемы с электронной почтой. Когда. zip'Ed он идет до менее 1 МБ, поэтому, по-видимому, что-то не так с листом Excel, но есть ли способ уменьшить файл excel в размере, не сжимая его?

У меня есть ряд версий Excel доступны для меня, кстати.

12
задан Hennes
06.03.2023 7:34 Количество просмотров материала 3671
Распечатать страницу

3 ответа

Если есть место, которое может быть "исправлено", есть несколько разных вещей, которые вы можете попробовать:

  1. сбросить все используемые диапазоны в каждой книге. Это можно сделать с помощью метода VBA следующим образом:

    Public Sub ResetAllLastCells()
    
    Dim wks As Worksheet
    Dim i As Long
    
    For Each wks In ActiveWorkbook.Worksheets
        i = wks.UsedRange.Rows.Count
    Next wks
    
    End Sub
    
  2. удалить ненужные пользовательские стили. Я использую метод VBA, как показано ниже, чтобы удалить все пользовательские стили:

    Public Sub StyleKill()
    
    Dim s As Style
    
    For Each s In ActiveWorkbook.Styles
        If Not s.BuiltIn Then
            s.Delete
        End If
    Next s
    
    End Sub
    
  3. Если в книге есть код VBA, попробуйте сохранить его декомилированным. Вы можете сделать это, открыв книги, откройте программу, внести небольшие изменения (добавить пробел или что-то), а затем, без составления проекта, сохраните книгу. Это может значительно уменьшить размер файла.

Я уверен, что есть и другие способы, но это мои испытанные и проверенные способы. В одной рабочей книге у меня это стабильно уменьшает размер файла с ~15мб до 10Мб.

6
отвечен markblandford 2023-03-07 15:22

по моему опыту, наиболее распространенной причиной этого являются пустые строки, которые находятся в пределах используемого диапазона в excel. Удалите пустые строки ниже диапазона, который вы фактически использовали (щелкните правой кнопкой мыши слева и удалите все строки, не просто очистите содержимое), если это не уменьшит размер, используйте макрос, подобный следующему:

Sub DeleteBlankRows()

Cells.Select
Dim i As Long

    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False

    For i = Selection.Rows.Count To 1 Step -1
        If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
            Selection.Rows(i).EntireRow.Delete
        End If
    Next i

        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
    End With
End Sub
2
отвечен RET 2023-03-07 17:39

другие ответы верны, но используйте VB скрипты. Если вы не хотите использовать сценарии, или если его только для одного от ситуации, вы также можете удалить неиспользуемое пространство вручную:

  • выберите любую ячейку в содержимом рабочего листа
  • нажмите Ctrl+Home на клавиатуре, чтобы выбрать последнюю использованную ячейку в правом нижнем углу
  • прокрутите назад к вашей "реальной" последней ячейке в правом нижнем углу вашего контента
  • удерживая Shift и щелкните ячейку ниже или справа от нее, в зависимости от неиспользуемого макета
  • щелкните правой кнопкой мыши внутри выделенной области и выберите Delete Rows или Delete Columns, опять же в зависимости от макета

вы, возможно, придется повторить эти шаги, если вы хотите удалить строки и столбцы одновременно.

0
отвечен user121391 2023-03-07 19:56

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх