Удаление столбцов из таблицы, которые имеют только заголовки

#excel #vba #excel-2016 #excel-tables

#excel #vba #excel-2016 #excel-таблицы

Вопрос:

У меня есть таблица, в которой много столбцов (включая заголовки с автофильтрацией), и некоторые столбцы содержат только заголовок, за которым не следует никаких других данных в этом столбце. Я хочу удалить эти столбцы из моей именованной таблицы.

Комментарии:

1. Что вы пробовали до сих пор?

Ответ №1:

Чтобы удалить столбец, выделите весь столбец электронной таблицы. Затем щелкните правой кнопкой мыши на выбранном столбце и выберите «Удалить».

введите описание изображения здесь

Обратите внимание, что нажатие кнопки Удалить на клавиатуре приведет только к удалению содержимого, а не к полному удалению столбца.

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

Комментарии:

1. Спасибо за совет, но я на самом деле искал код vba.

Ответ №2:

вот код для вас, в следующий раз попробуйте что-нибудь закодировать

 Public Sub teste()
    Call DeleteTableColumnNull("table")
End Sub
Public Sub DeleteTableColumnNull(ByVal TableObjectName As String)
    Dim table As ListObject
    Dim st As Worksheet
    Dim cols As Range
    Dim col As Range
    Dim rows As Range
    Dim row As Range



    For Each st In ThisWorkbook.Worksheets
        If tableExistInThisSheet(st, TableObjectName) Then
            Set table = st.ListObjects(TableObjectName)
            For Each col In table.Range.Columns
                If Application.WorksheetFunction.CountA(col) = 1 Then
                    col.Delete
                End If
            Next col
        End If
    Next

End Sub


Public Function tableExistInThisSheet(st As Worksheet, TableObjectName As String) As Boolean
On Error GoTo f
    Dim tb As ListObject
    Set tb = st.ListObjects(TableObjectName)
    tableExistInThisSheet = True
    Exit Function
f:

End Function
  

Комментарии:

1. Да, Ронан, я использовал код, чтобы попытаться удалить мои «нулевые» столбцы, и, похоже, ничего не работает. Я занимаюсь программированием всего пару месяцев, поэтому знаю, что это то, чему мне нужно научиться. Я пробовал ваш код, но это не так, и я не получаю никаких ошибок. Предложения?

2. Null отличается от них пустыми ячейками, я использую CountA do count, если нет ячеек Blank = «» , Если is = «NULL», это не сработает