Note: The other languages of the website are Google-translated. Back to English
English English

如何在Excel中根据标题值删除整个列?

在许多情况下,您可能需要根据Excel中的标题值删除整个列。 例如,您需要删除标题中包含值“ old”的所有列。 在本教程中,我们将详细介绍根据标头值删除整个列的方法。

使用VBA代码根据标题值删除整个列
使用Kutools for Excel根据标题值删除整个列


使用VBA代码根据标题值删除整个列

您可以使用VBA代码根据标题值删除整个列。 请执行以下操作。

1。 按 其他 + F11 同时打开 Microsoft Visual Basic应用程序 窗口。

2。 在里面 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块。 然后将下面的代码复制并粘贴到“模块”窗口中。

VBA代码:根据标题值删除整个列

Sub DeleteSpecifcColumn()
	Set MR = Range("A1:D1")
	For Each cell In MR
		If cell.Value = "old" Then cell.EntireColumn.Delete
	Next
End Sub

说明:

1)在代码中,“”是您要基于其删除整个列的标题值。 请手动更改为标题值。 和 A1:D1 是您要使用的列范围。
2) 此代码区分大小写。

3。 按 F5 键运行代码,标题等于指定文本的整列将立即被删除。


使用Kutools for Excel根据标题值删除整个列

Kutools for Excel选择特定的单元格 实用程序,您可以轻松地首先选择包含特定标题值的所有列,然后立即删除这些选定的列。 请执行以下操作。

申请前 Kutools for Excel首先下载并安装.

1.选择包含您要删除的列的范围,然后单击 库工具 > 选择 > 选择特定的单元格。 看截图:

2。 在里面 选择特定的单元格 对话框中,选择 整列 在选项 选择类型 部分,并在 特定类型 下拉列表,选择 等于 选项,然后在下面的框中键入标题值。 最后点击 OK 按钮。 看截图:

3。 点击 OK 在另一个弹出对话框中单击,然后立即选择包含指定标题值的列。

4.右键单击所选列的列标题,然后单击“确定”。 删除 从右键单击菜单中。 然后,所有选定的列立即被删除。

  如果您想免费试用该工具(30天), 请点击下载,然后按照上述步骤进行操作。


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能。 支持Office / Excel 2007-2019和365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能30天免费试用。 60天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (12)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
抱歉,如果这看起来超级基本,但这是我第一次尝试 vba。 使用这个我将如何应用它来删除多个列标题。 我实际上试图只保留某些标题列并删除更改列表的其余部分。
该评论由网站上的主持人最小化
在第一个代码中,只需复制第 4 行并将“旧”更改为第二列名称即可
该评论由网站上的主持人最小化
嘿! 在您有两个具有相同标题的连续列之前,这很有效。 假设您的范围是 A1:A5,而 A2 和 A3 的标题为“旧”。 它将删除 A2,但随后 A3 将移动到 A2 曾经占据的位置,并且代码将跳过它,因为它将查看新的 A3,即其范围内的下一个单元格。
该评论由网站上的主持人最小化
嗨,埃利亚斯,
正如您所提到的,A2 和 A3 具有相同的标题“旧”。 但是它们在同一列中,应用代码后,整个 A 列将立即被删除。
我不确定我明白你的意思。 如果您能提供您正在尝试做的事情的屏幕截图,那就太好了。
该评论由网站上的主持人最小化
嗨,是否可以使用多个列名来执行此操作?
该评论由网站上的主持人最小化
嗨,马克,
试试下面的代码。 在第八行,请用双引号将每个列名括起来,并用逗号分隔。 希望我能帮上忙。 谢谢你。

子 DeleteSpecifcColumn()

暗淡 xFNum、xFFNum、xCount 作为整数

将 xStr 调暗为字符串

将 xArrName 调暗为变体

调暗 MR,xRg 作为范围

出错时继续下一步

设置 MR = Range("A1:N1")

xArrName = Array("old", "new", "get") '用双引号将每个列名括起来并用逗号分隔

xCount = MR.Count

xStr = xArrName(xFNum)

对于 xFFNum = xCount 到 1 步 -1

设置 xRg = Cells(1, xFFNum)

对于 xFNum = 0 到 UBound(xArrName)

xStr = xArrName(xFNum)

如果 xRg.Value = xStr 则 xRg.EntireColumn.Delete

下一个 xFNum

下一页

END SUB
该评论由网站上的主持人最小化
我认为需要更改第 12 行才能使代码正常工作。 原始第 12 行“Set xRg = Cells(1, xFFNum)”修改了第 12 行“Set xRg = MR(1, xFFNum)”
子 DeleteSpecifcColumn()
暗淡 xFNum、xFFNum、xCount 作为整数
将 xStr 调暗为字符串
将 xArrName 调暗为变体
调暗 MR,xRg 作为范围
出错时继续下一步
设置 MR = Range("A1:N1")
xArrName = Array("old", "new", "get") '用双引号将每个列名括起来并用逗号分隔
xCount = MR.Count
xStr = xArrName(xFNum)
对于 xFFNum = xCount 到 1 步 -1
设置 xRg = MR(1, xFFNum)
对于 xFNum = 0 到 UBound(xArrName)
xStr = xArrName(xFNum)
如果 xRg.Value = xStr 则 xRg.EntireColumn.Delete
下一个 xFNum
下一页
END SUB
该评论由网站上的主持人最小化
如果标题从第 4 行开始怎么办
该评论由网站上的主持人最小化
VBA 示例声明代码将删除其标题包含“旧”的所有列。 事实并非如此。 = 运算符只会删除完全匹配。 您需要将 LIKE 运算符与通配符一起使用。
修正代码:Sub DeleteSpecifcColumn()
设置 MR = Range("A1:D1")
对于 MR 中的每个单元格
If cell.Value LIKE "old*" Then cell.EntireColumn.Delete
下一页
END SUB

该评论由网站上的主持人最小化
您好,感谢您的指正和分享。 
该评论由网站上的主持人最小化
Hola, tengo una hoja de excel con varios datos, digamos 4 columnas y 12 filas, me gustaría poder imprimir cada fila en un folio separado en una plantilla, es decir, tenemos una hoja con varios nombres y apellidos y teléfono, quiero imprimir tantas páginas como filas tenga la hoja de excel, he inte tado varias cosas pero no encuentro la forma。 格雷西亚斯·德·安特马诺
该评论由网站上的主持人最小化
嗨,
如果要在工作表的单独页面中打印每一行,建议您每 1 行插入分页符,然后打印它们。
本文提供的方法可能会对您有所帮助。 请试一试。 谢谢你。
如何在 Excel 中每 X 行插入分页符?[/url]
https://www.extendoffice.com/documents/excel/1774-excel-insert-page-break-every-row.html
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点