Vba 在excel中隐藏所有重复的列

Vba 在excel中隐藏所有重复的列,vba,excel,Vba,Excel,如果第8行中的文本相同,如何隐藏所有重复的列。 我有一个材料的下拉列表。具有相同编号的多列用于BOM表。希望仅使用宏显示第8行中的唯一值,但也使用另一个宏取消隐藏所有列 我相信这很简单,但不知道从哪里开始 谢谢试试这个: Option Explicit Dim last_col, col, a As Integer Dim unique_materials(100), material As String Sub show_all_columns() last_col = Range

如果第8行中的文本相同,如何隐藏所有重复的列。

我有一个材料的下拉列表。具有相同编号的多列用于BOM表。希望仅使用宏显示第8行中的唯一值,但也使用另一个宏取消隐藏所有列

我相信这很简单,但不知道从哪里开始

谢谢

试试这个:

Option Explicit
Dim last_col, col, a As Integer
Dim unique_materials(100), material As String


Sub show_all_columns()
    last_col = Range("XFD8").End(xlToLeft).Column
    For col = 1 To last_col
        Columns(col).Hidden = False
    Next col
End Sub

Sub hide_duplicates()
    Erase unique_materials
    last_col = Range("A8").End(xlToRight).Column
    a = 0
    For col = 1 To last_col
        material = Cells(8, col)
        If UBound(Filter(unique_materials, material)) > -1 Then
            Columns(col).Hidden = True
        Else
            unique_materials(a) = material
            a = a + 1
        End If
    Next col
End Sub
我建议你阅读,然后相应地编辑你的问题。