У меня есть папка, в которой у меня есть около 30 файлов Excel. В каждом из этих файлов мне нужно удалить около 20 конкретных столбцов.

Вот некоторые детали:

  1. Я использую Excel 2013
  2. Столбцы находятся на первом листе файла Excel. каждый файл может иметь несколько листов, но столбцы, которые необходимо удалить, находятся на первом листе.
  3. Вот названия столбцов, но, пожалуйста, обратите внимание, что столбцы иногда повторяются:

    вереск

    Национальный свет

    генеральный

    Луиза

    Terruin

Хотелось бы помочь.

1 ответ1

2

Не уверен, что вам действительно нужна только функция листа, но поскольку вы не исследовали себя, я думаю, вы не знаете, какие у вас есть варианты, и поэтому VBa будет достаточно.

Этот VBa делает это для вас, но это означает, что вы вставляете его в каждый лист, но так как у вас есть только 30, я предполагаю, что это выполнимо.

Sub Button1_Click()

Dim columnTitles(0 To 5) As String
    columnTitles(0) = "Heather"
    columnTitles(1) = "National Light"
    columnTitles(2) = "General"
    columnTitles(3) = "Louisa"
    columnTitles(4) = "Terruin"

Do While (True)
Dim didDelete As Boolean
didDelete = False

     Dim c As Range
        For Each c In ActiveSheet.UsedRange

             If c.Row > 1 Then
                Exit For
            End If

            For Each Title In columnTitles

                If (Title = c.Value) Then
                    Columns(c.Column).Delete
                    didDelete = True
                    Exit For
                End If

            Next
        Next c

        If (didDelete = False) Then
        Exit Do
        End If


Loop

End Sub

До

После

(Я знаю, что на снимке экрана я пропустил National Light, но я проверил его, и он работает)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .