Excel:清除公式结果(缓存)以减少文件大小

时间:2016-05-27 14:29:12

标签: excel vba excel-vba excel-2007

似乎excel将公式结果存储为excel电子表格文件中的字符串。 我制作了足够大的电子表格,文件大小有时会因为公式结果而从300kb攀升到多兆字节。 (是的,这是xlsm / xlsx压缩)

所以,我想摆脱它们......我已经找到了实现这个目标的方法,但我想知道是否有更好的方法?

Public Sub CalcSheet_Calc_OFF()
    Dim LastRow, LastCol As Long
    Dim Used_Range As Range
    Calc_Sheet.EnableCalculation = False
    With Calc_Sheet.Cells.SpecialCells(xlCellTypeLastCell)
        LastRow = .Row
        LastCol = .Column
    End With
    Set Used_Range = Range(Calc_Sheet.Cells(1, 1), Calc_Sheet.Cells(LastRow, LastCol))
    With Used_Range
        .Formula = .Formula
    End With
End Sub

它运行正常...它将所有结果更改为0,并大大减小文件大小...虽然需要29秒才能通过256 x 65536(16777216)单元格,这不是非常快。它也不允许超过8192个字符的字符串(因为公式仅限于该大小)。但如果我想要不解析非公式细胞......

With Used_Range.Cells.SpecialCells(xlCellTypeFormulas, 23)
    .Formula = .Formula
End With

它只是将它找到的第一个公式应用于其他每个细胞!

0 个答案:

没有答案