#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», это не сработает