Уважаемые форумчане, подскажите пожалуйста как оптимизировать код макроса? В прикреплённых файлах макрос импортирует данные, а затем: 1. Включает Фильтр 2. Отфильтровывает пустые ячейки в 1-м столбце и выделяет их 3. Затем очищает выделенные ячейки командой Selection.ClearContents затем выполянются такие же действия по 2-му столбцу и затем по 3-му Вроде всё работает, но хотелось бы оптимизировать макрос.
По форумам узнал что есть возможность выделять пустые ячейки без фильтра через SpecialCells(xlCellTypeBlanks), но как применить не понимаю. И ещё вот здесь один из продвинутых специалистов VBA предлагает какой-то хитрый метод:
Код
Sub ertert()
With Range("A1:F" & Cells(Rows.Count, 1).End(xlUp).Row)
.Value = Application.Clean(.Value)
'или даже так
'.Value = Application.Trim(Application.Clean(.Value))
End With
End Sub
Но как применить его к умной таблице тоже не ясно.
P.S. Прикреплённые файлы должны лежать в одной папке
Никита Дворец, спасибо за внимание. Прописал так: Set rng = Range("A1:C48") но выделение происходит только в столбце A Хотелось бы выделить пустые ячейки сразу во всех столбцах
Sub SelectNonBlanks()
Dim tbl As ListObject
On Error Resume Next
Set tbl = ThisWorkbook.Worksheets("Заказ").ListObjects("tbl_Zakaz")
With tbl.DataBodyRange
.SpecialCells(xlCellTypeBlanks).Select
End With
End Sub
Но пустые ячейки выделяются почему-то только в столбцах A, D и E В столбцах B и C такой макрос почему-то не видит пустых ячеек
Никита Дворец, я в прикрепленном шаблоне закоментировал все функции фильтрации и очистки и после импорта вижу что xlCellTypeBlanks в столбцах B и C не видит пустых ячеек. Если вручную очистить пару ячеек в этих столбцах, тогда видит и выделяет их как положено
p.s. но в столбцах B и C достаточно пустых ячеек после импорта
Странное желание, выделить пустые ячейки чтобы их очистить. Отчего очищать, они и так пустые, куда ещё пустее? Может быть надо очищать от не видимых символов? Но тогда надо выделять не пустые ячейки.
gling, так дело в том что там нет вроде невидимых символов, но после импорта они почему то не считаются пустыми. Дело в том что первый столбец не должен иметь ширину больше 10, что собственно и прописано в настройках листа но в этом столбце после импорта есть длинные значения, которые не вмещаются в ширину столца, и если вручную очистить ячейки столбца B, тогда все значения столбца A начинают отображаться полностью