VBA删除列|使用VBA删除Excel列的前4种方法

通常,在excel工作表中,我们有两种不同的方法来删除列,一种是键盘快捷键,另一种是使用右键单击和插入方法,但是在VBA中,我们必须使用delete命令和整个column语句一起删除任何一列,这种技巧这是因为如果我们需要删除单个列,我们将提供单个列引用,但是对于多个列,我们将提供多个列引用。

Excel VBA删除列

我们在excel中执行许多操作,例如剪切,复制,粘贴,添加,删除,插入,以及我们定期执行的许多此类操作。我们可以使用VBA编码来使用所有这些操作。在VBA中,我们需要学习的重要概念之一是“删除列”。在本文中,我们将向您展示如何在VBA中使用此Delete Column选项。

在Excel VBA中删除列有什么作用?

顾名思义,它将删除指定的列。要执行此任务,我们需要首先确定我们需要删除的列。从一个场景到另一个场景,要删除的列的选择是不同的,因此在本文中,我们将介绍一些重要且经常遇到的场景。

删除列很容易。首先,我们需要使用COLUMNS属性来选择列,因此下面是VBA中“列删除”方法的语法。

列(列参考)。删除

因此,我们可以构建如下代码:

列(2).Delete或列(“ B”)。Delete

这将删除列号2,即列B。

如果要删除多个列,则无法输入列,我们需要按列标题(即字母)引用这些列。

列(“ A:D”)。删除

这会将列从A删除到D,即前4列。

这样,我们可以在VBA中使用“删除列”方法来删除特定的列。在下面的部分中,我们将看到更多示例以更好地理解它。继续阅读。

Excel VBA删除列方法的示例

下面是使用VBA删除列的示例。

Example#1 –使用删除方法

假设您的数据表如下所示。

如果我们要删除月份“ Mar”,请首先选择columns属性。

代码:

 子Delete_Example1()列(结束子 

提及列号或字母。在这种情况下,它是3或C。

代码:

 Sub Delete_Example1()列(3)。结束子 

使用删除方法。

笔记: 您将不会获得IntelliSense列表来选择Delete方法,只需键入“ Delete”,

代码:

 Sub Delete_Example1()列(3).Delete End Sub 

或者,您可以像这样输入列地址。

代码:

 Sub Delete_Example1()Columns(“ C”)。Delete End Sub 

使用F5键运行此代码,或者您可以手动运行并查看结果。

两种代码都将执行删除提到的列的相同工作。

如果要删除多个列,我们需要用字母来提及它们,那么我们不能在此处使用列号。

如果要删除第2至4列,则可以传递如下代码。

代码:

 Sub Delete_Example1()Columns(“ C:D”)。Delete End Sub 

通过运行选项手动运行此代码或按F5键,这将删除“ Feb”,“ Mar”和“ Apr”列。

Example#2 –删除具有工作表名称的列

上面概述了如何使用VBA代码删除列。但是,这不是删除列的好习惯,如果不引用工作表名称,则盲目地删除列是很危险的。

如果您未提及工作表名称,则无论哪个工作表处于活动状态,它都将删除该工作表的列。

首先,我们需要按其名称选择工作表。

代码:

 Sub Delete_Example2()工作表(“销售表”)。选择结束Sub 

选择工作表后,我们需要选择列。我们也可以通过使用VBA RANGE对象来选择列。

代码:

 Sub Delete_Example2()工作表(“销售表”)。选择范围(“ B:D”)。删除结束Sub 

这将删除工作表“ Sales Sheet”中的B到D列。对于此代码,无论哪个处于活动状态都无关紧要,它只会删除该工作表中提到的列。

我们还可以在单​​行本身中构造VBA代码。

代码:

 Sub Delete_Example2()工作表(“销售表”).Range(“ B:D”)。删除结束Sub 

这也将删除“ B至D”列,而不选择工作表“ Sales Sheet”。

Example#3 –删除空白列

假设您的数据具有其他类似的空白列,如下所示。

因此,删除我们可以在下面的代码中使用的所有替代列。

代码:

 Sub Delete_Example3()Dim k作为整数对于k = 1至4列(k + 1).Delete Next k End Sub 

使用F5键或手动运行此代码,然后它将删除所有替代的空白列,我们的数据将如下所示。

笔记: 这仅适用于备用空白列。

Example#4 –删除空白单元格列

现在,看这个例子。在某些情况下,如果在数据范围内找到任何空白单元格,则需要删除整列。请考虑以下数据作为示例。

所有黄色单元格均为空白。因此,这里我的要求是删除所有空白单元格列。下面的代码将做到这一点。

代码:

 Sub Delete_Example4()Range(“ A1:F9”)。Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.EntireColumn.Delete End Sub 

让我为您逐行解释此代码。

我们的数据从A1到F9,所以首先我需要选择该范围,下面的代码将说明这一点。

范围(“ A1:F9”)。选择

在此选定的单元格区域中,我需要选择空白的单元格。因此,要选择空白单元格,我们需要特殊的单元格属性,在该属性中,我们已将单元格类型用作空白。

Selection.SpecialCells(xlCellTypeBlanks).Select

接下来,它将选择所有空白单元格,在选择中,我们将删除选择的整个列。

Selection.EntireColumn.Delete

因此,我们的最终结果将如下所示。

无论在哪里找到空白单元格,它都会将这些空白单元格删除整列。

您可以在此处下载此Excel VBA删除列– VBA删除列模板