Excel VBA 7.59没有存储多少数据,工作表为什么那么大?来帮他减减肥吧

一起学习,一起进步~~

相信在平时的工作中,大家可能也会碰到过这样的问题,表中没有没有存储几个数据,但是莫名其妙的变得非常的大,非常的大,打开报表查看,发现有没有什么多少数据,按照常规来看,最多也就2~3M的数据,那么为什么数据会一下子变的那么大呢?

因为我们在之前处理工作表的过程中,还遗留一些没有处理的对象,如历史的图片记录,或者一些无关的格式等其他的设计还存在于我们的其他工作表中,这个时候我们就需要删除那么看似空白,其实并非真的空白的工作表,来释放我们的内存

场景说明

来看看我们今天的工作表

这里有3个工作表,但是只有第一个和第二个工作表有数据,并且只有一行数据,其他的两个工作表我们在使用完成之后已经清空了,并没有任何数据

但是可以看到我们还保留了一些边框的格式设计,以及一些历史的商品图片未被删除,所以导致我们虽然没有存储多少数据,但是却占用了很大的内容,并且还有一个异常的工作表,里面存储了很多的图片,因为再删除单元格内容的时候,没有办法删除图片,所以这些历史图片也被保存了下来,导致内存非常大

浪费了不少的内存,那么怎么将其他的没有数据的工作表全部删除呢?

代码区

Sub delete()Dim sth As WorksheetFor Each sth In Worksheets If WorksheetFunction.CountA(sth.UsedRange) = 0 Then Application.DisplayAlerts = False sth.delete Application.DisplayAlerts = True End IfNext sthEnd Sub

代码执行之后就剩下这两个工作表了。

不管是之前未被使用的空白单元格还是已经隐藏起来的带有历史图片的空白工作表都已经被删除了。

工作表的内容也是一下子就回归到了正常的水平了。

代码分析

今天的代码相比较之前长篇大论来说,就非常的简单了。

If WorksheetFunction.CountA(sth.UsedRange) = 0 Then

只要这个个工作表没有任何一个单元格存在数据,那么就默认是空白工作表,哪怕你里面存在最多的图片,控件,等元素都会当成空白工作表,当然你如果隐藏了工作表,也没用,一样会被检查是否是空白工作表,如果是空白工作表,一样删除。

今天的知识点就简单很多了,大家可以趁机放松大脑,接受一点简单易懂的东西了。

============================

(0)

相关推荐