当前位置: 首页 > 知识库问答 >
问题:

Excel VBA-查找匹配的列标题并删除该列

段干玺
2023-03-14

很抱歉,如果之前有人回答过这个问题,我无法找到任何符合我具体情况的东西。

我有一个工作簿,有18张工作表,从B2开始,每张工作表的列数可变。有时生成工作表的程序会创建重复的列,因此,我需要一个由button触发的宏来搜索每一个工作表,寻找匹配的列标题,然后删除其中一个列(整个列,而不仅仅是标题)。

到目前为止,我很难,我已经能够删除表中任何单元格中的所有匹配,这几乎抹去了整个表。我只需要匹配标题,然后在此基础上删除整个列。

如果你需要更多的信息,请告诉我,谢谢你的帮助!

到目前为止,代码还在做一些其他的事情,所以这需要继续工作。

    Sub RemoveExtras()

Dim MyRange As Range
Dim ws As Worksheet

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

BadCharacters = Array(Chr(10), Chr(13))
wsNumber = Sheets.Count

For Each ws In Worksheets
    With ws
        For Each MyRange In .UsedRange
            If 0 < InStr(MyRange, Chr(10)) Then
             For Each i In BadCharacters
                MyRange = Replace(MyRange, i, vbNullString)
             Next i
            End If
             For t = 1 To wsNumber
              Columns(t).RemoveDuplicates Columns:=Array(1), Header:=xlYes
              Next t
        Next MyRange
    End With
Next ws

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

共有1个答案

崔绍辉
2023-03-14

看看这对你有没有帮助

Sub test()

Dim book As Workbook, sheet As Worksheet, text As String

For Each sheet In Worksheets


    Set MR = Range("B2:Z2") 'change Z2 as per your requirement
    For Each cell In MR
        Set BR = Range("B2:Z2") 'change Z2 as per your requirement
        For Each cell2 In BR
            If cell.Value = cell2.Value Then cell.EntireColumn.Delete
        Next
    Next

Next sheet


End Sub
 类似资料:
  • 问题内容: 假设我们有一个具有如此简单结构的“汽车”表… 拳头,我选择的是汽车(1,黑色,重型,豪华轿车),然后我想获取相关汽车的列表,这些列表按匹配列的数量排序(没有任何列的权重)。所以,首先我期望看到(黑色,重型,豪华轿车)汽车,然后我期望看到只有2个匹配字段的汽车,等等。 是否可以使用SQL执行这种排序? 对不起,我的英语,但我真的希望我对您的问题很清楚。 谢谢你。 问题答案: 可能有几种方

  • 我正在开发一个应该删除命名列的小PowerShell脚本。有没有办法不选择标题为“xyz”的列? 我试图通过 并将结果连接到逗号分隔的字符串中并删除不需要的标头 然后使用

  • 几周后我有期末考试,我们的练习题是这样的: 给定一个N个整数的队列,在队列中找到最小值并将其从队列中删除。当您完成时,其余的值必须按照它们原来的顺序。您只能使用队列操作,也就是说,您无权访问数组或链表中的基础存储。描述实现此操作的最省时的方法,并给出以N表示的顺序(大O)。 编辑:队列操作是“enqueue”、“dequeue”、“isfull”、“isempty”,如果是循环队列,则是“fron

  • 题目描述 在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字6,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。 分析与解法 解法一、分治法 这种行和列分别递增的矩阵,有一个专有名词

  • 本文向大家介绍查找图的匹配数,包括了查找图的匹配数的使用技巧和注意事项,需要的朋友参考一下 问题陈述 下图的匹配数字是多少? 解 顶点数= 9 我们只能匹配8个顶点。 匹配号码为4。

  • 问题内容: 我有数据框: df 如何删除列名,并从该数据帧?一种方法是将其写入csv文件,然后在指定header = None的情况下读取它。有没有一种方法,而无需写到csv并重新读取? 问题答案: 我认为你不能删除列名,只能通过重新设置有: 这与使用和相同: 下一个解决方案: