VBA清除目录|如何使用VBA代码清除或删除内容?

Excel VBA清除内容

清除内容是VBA中的一种方法 用于删除或删除存储在提供给它的单元格中的值的方法,此方法使单元格范围为空,并与range属性一起使用以访问指定的单元格范围,使用此方法的示例如下range(“ A1:B2”)。ClearContents此方法将从A1到B2的单元格内容清除。

在excel中,添加数据和删除数据是一项常见的常规任务。有时我们删除单个单元格值,有时删除多个单元格值,有时我们可能还需要删除整个工作表内容。在本文中,我们将向您展示如何在Excel VBA中使用“清除内容”方法。在VBA中,我们有许多方法可以做到这一点,例如“清除”,“删除”和“清除内容”。

Excel VBA中的清除内容是什么?

在向您介绍VBA中的清除内容之前,让我先说明如何删除或清除特定范围内的数据。

例如,看下面的数据。

现在,如果我要从单元格A1到C3清除,我们首先需要使用VBA RANGE对象提及单元格的范围。

代码:

范围(“ A1:C3”)

在使用RANGE对象提及单元格范围之后,我们需要选择“清除”方法以清除对单元格值的提及。

代码:

范围(“ A1:C3”)。清除

这将清除提到的单元格值。

代码:

 Sub Clear_Example()Range(“ A1:C3”)。Clear End Sub 

除了清除方法以外,我们还可以使用“删除”方法。

代码:

范围(“ A1:C3”)。删除

就像我们的clear方法一样,这将删除提到的单元格值。

如果要删除所有单元格的数据,则可以将VBA CELLS属性与工作表名称一起使用。

工作表(“ Sheet1”)。Cells.Delete
工作表(“ Sheet1”)。Cells.Clear

上面的两个代码将删除工作表“ Sheet1”的全部数据。它将删除工作表中从第一个单元格到最后一个单元格的单元格值。

如果要删除当前的工作表单元格,则可以使用“活动工作表”对象。

ActiveSheet.Cells.Delete或ActiveSheet.Cells.Clear

清除和删除方法之间的区别

我知道您应该已经想到了这个问题。

是的,这两种方法之间有区别。

当您使用“删除”方法时,它将删除该单元格,而下面的单元格将接管已删除单元格的位置。

例如,请看下面的图片。

现在,我将使用delete方法删除单元格A1。

代码:

 Sub Clear_Example()Range(“ A1”)。Delete End Sub 

我将运行此代码,看看会发生什么。

就像我告诉我删除单元格A1时所发生的情况一样,这里发生了什么,但是单元格A2向上移动了一个单元格并占用了已删除的单元格。这将导致数据不匹配。因此,在使用Delete方法时要小心。

现在,对于相同的数据,我将清除方法。

代码:

 Sub Clear_Example()Range(“ A1”)。Clear End Sub 

现在看看运行此代码时会发生什么。

该代码刚刚腾出了单元格A1,而没有更改其他单元格。这看起来只是删除整个数据范围的部分单元格的正确方法。

使用VBA清除内容方法来保留单元格的格式

如果您已观察到前面两种方法,则这两种方法不仅删除或清除了提供的单元格。它还删除了我们提供的单元格的格式。

为了保留单元格的格式,我们既不需要使用“删除”也不使用“清除”,但是我们需要使用VBA的“清除内容”方法。

使用RANGE对象输入单元格范围时,将显示与之关联的所有属性和方法。

我们可以访问“删除”,我们可以访问“清除”,也可以访问“ ClearContents”方法。

选择此方法。

代码:

 Sub Clear_Example()Range(“ A1:C3”)。ClearContents End Sub 

现在,这将清除A1到C3单元中的内容,但是我们将保留所有现有的格式。

如您在上图中所看到的,我们在VBA中具有单元格颜色,边框以及与这些单元格相关的每种格式。

同样,我们也可以清除其他工作表的内容。

工作表(“ Sheet1”)。范围(“ A1:D10”)。ClearContents

这将清除工作表“ Sheet1”中单元格A1到D10中的内容。

同样,我们也可以删除其他打开的工作簿单元。

工作簿(“ Book1.xlsx”)。工作表(“ Sheet1”)。范围(“ A1:D10”)。ClearContents

循环浏览所有工作表并清除特定范围的内容

假设您的工作簿中有很多工作表,并且您想要删除所有我们需要在VBA中使用“每个循环”的工作表中的单元格从A1到C15的范围。

下面的代码将完成这项工作。

代码:

 Sub Clear_All()将ActiveWorkbook.Worksheets Ws.Range(“ A1:C15”)。ClearContents下一个Ws作为工作表的Ws替换为工作表。 

笔记: 您可以根据需要更改单元格的范围。

万一您想清除整个工作表数据,则需要使用以下代码。

代码:

 Sub Clear_All()将ActiveWorkbook.Worksheets Ws.Cells.ClearContents中的每个Ws作为工作表的Ws昏暗Ws结束Sub 

您可以在此处下载此VBA清除内容Excel模板– VBA清除内容模板