臃肿的 Excel 文件

臃肿的 Excel 文件

有人给我发送了一个 10MB 的 Excel 文件,这给我们带来了电子邮件问题。压缩后,文件大小降到了 1MB 以下,所以可能是 Excel 工作表出了问题,但是有没有办法在不压缩的情况下减小 Excel 文件的大小呢?

顺便说一下,我可以使用多个版本的 Excel。

答案1

如果有可以“回收”的空间,您可以尝试几种不同的方法:

  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 代码,请尝试将其反编译保存。您可以打开工作簿,打开 VBE,进行一些小改动(添加空格或其他内容),然后不编译项目,保存工作簿。这可以大大减少文件大小。

我确信还有其他方法,但这些是我尝试过并测试过的方法。在我的一个工作簿中,这种方法始终将文件大小从约 15mb 减少到 10mb。

答案2

根据我的经验,最常见的原因是 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

答案3

其他答案都是正确的,但使用 VB 脚本。如果您不想使用脚本,或者只是偶尔使用,您也可以手动删除未使用的空间:

  • 选择工作表内容中的任意单元格
  • Ctrl按键盘上的+键Home选择右下方最后使用的单元格
  • 滚动回到内容右下角的“真实”最后一个单元格
  • 按住Shift并单击其下方或右侧的单元格,具体取决于未使用的布局
  • 在标记区域内单击鼠标右键,然后选择Delete RowsDelete Columns,同样取决于布局

如果您想同时删除行和列,则可能需要重复这些步骤。

相关内容