我写了一个宏来清除我每天使用的excel模板的数据。我将复制的图像和文本放入模板中,保存,然后第二天使用宏清除它并重复该过程。我已经注意到一两个月之后文件已经变得非常大了。它大约是50KB,现在是18,317KB,数据量相同。这种增长是渐进的,而不是立即的。可能每天几百KB。
我已经检查了单元格中是否有任何格式,并且没有。我认为我的代码会删除每个工作表中除最后一个(包含非常少的数据)之外的所有单元格,但我不确定它是否正常工作。
ArrayList<Stop>
我的宏在某种程度上不会删除我模板的所有内容吗?或者它可能与电子表格的设置有关吗?
谢谢。
答案 0 :(得分:1)
尝试一下,让我知道它是否有帮助:
Option Explicit
Sub Reset_Template()
Dim I As Integer
Dim WS_Count As Integer
Dim lngLastRow As Long
Dim lngLastColumn As Long
WS_Count = ThisWorkbook.Worksheets.Count - 1
For I = 1 To WS_Count
lngLastRow = 0: lngLastColumn = 0
With ThisWorkbook.Worksheets(I)
If .AutoFilterMode Then .AutoFilter
.DrawingObjects.Delete
.Range("C67").Delete Shift:=xlUp
On Error Resume Next
lngLastRow = .Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lngLastColumn = .Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
On Error GoTo 0
.Rows(lngLastRow + 1 & ":" & .Rows.Count).EntireRow.Delete
.Columns(lngLastColumn + 1 & ":" & .Columns.Count).EntireColumn.Delete
End With
Next I
ThisWorkbook.Worksheets(1).Activate
ThisWorkbook.Worksheets(1).Cells.Select
End Sub
除了一些代码优化之外,上述代码与您之间的主要区别在于删除了最后一行之后的“看似”空行。我遇到的问题是:如果正在使用一行,然后清除内容,那么(有时)Excel仍会“保留”保存文件中的空行。在上面的代码中,我删除了所有这些行,并且(在我的情况下)因此能够大大减少我的一些旧文件。
答案 1 :(得分:0)