似乎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
它只是将它找到的第一个公式应用于其他每个细胞!