AutoFilter в столбце с числовыми данными

Автор Посетитель 07.02.2025, 07 февраля 2025, 11:24

Посетитель 07.02.2025

Всем доброго времени суток!

В таблице имеется столбец, содержащий номера (идентификаторы). Ячейки данного столбца соответственно имеют числовой формат. Таблица имеет следующий вид:

ID,            Наименование
----------------------------------------------
10045,          Название группы 45
100450005, Наименование позиции 5 в группе 45
100450004, Наименование позиции 4 в группе 45
100450003, Наименование позиции 3 в группе 45
100450002, Наименование позиции 2 в группе 45
100450001, Наименование позиции 1 в группе 45
10044,          Название группы 44
100440003, Наименование позиции 3 в группе 44
100440002, Наименование позиции 2 в группе 44
100440001, Наименование позиции 1 в группе 44
10043,          Название группы 43
100430003, Наименование позиции 3 в группе 43
100430002, Наименование позиции 2 в группе 43
100430001, Наименование позиции 1 в группе 43

Есть ли возможность отфильтровать таблицу в VBA по идентификатору группы, но при этом чтобы остались как строчки с позициями группы, так и строчка с названием самой группы?

Пробовал таким образом, но данный фильтр работает только с текстовым форматом ячеек:

Sheets(sheet).Range("A2:B9999").AutoFilter Field:=1, Criteria1:="=" + group_ID + "*", VisibleDropDown:=False

или

Sheets(sheet).Range("A2:B9999").AutoFilter Field:=1, Criteria1:="=10044*", VisibleDropDown:=False 

С числовым форматом работает только так, но в этом случае не попадает строчка с названием группы:

Sheets(sheet).Range("A2:B9999").AutoFilter Field:=1, Criteria1:=">" + group_ID + "0000", _
                                                    Criteria2:="<" + group_ID + "9999", VisibleDropDown:=False

или

Sheets(sheet).Range("A2:B9999").AutoFilter Field:=1, Criteria1:=">100440000", _
                                                    Criteria2:="<100449999", VisibleDropDown:=False

Можно ли как-то всё-таки реализовать фильтр не меняя формат ячеек?

Спасибо.

Администратор

На листе два столбца:?
ID
Наименование

Или только один столбец:?
ID, Наименование

Посетитель 07.02.2025


Администратор

Предоставьте файл-пример или если нет такой возможности, сделайте скриншот.
Иначе я не могу понять, какие у вас столбцы.

Посетитель 07.02.2025

Вот скрины с реального проекта. При выборе группы из выпадающего списка необходимо отфильтровать строки и оставить только позиции из выбранной группы. Результат должен быть как на скрине 2, только еще должна отображаться с строчка с названием группы.

Администратор

Вы пробовали сделать фильтрацию с помощью VBA, а вручную вы умеете делать фильтрацию?

Посетитель 07.02.2025

Да, пробовал вручную. Доступны только числовые фильтры (скрин 1). А если выбрать настраиваемый фильтр, и применить текстовые фильтры, например "содержит", то ни одна стока не отображается (скрин 2). Работают только числовые фильтры - больше, меньше, равно..

Администратор

Написал вам два письма на почту с заголовком "Письмо с Форума по VBA и MS Office". Написал именно на почту, а не на форум.

В Экселе обычно так: если нельзя сделать вручную, то и с помощью макроса сделать нельзя.
Макрос делает только то же самое, что и пользователь, а не расширяет возможности Экселя. Макрос только автоматизирует работу.

Можно попробовать использовать вспомогательный столбец. В него поместите такую формулу:
=A10&""
В ячейку запишется то же число, но будет текстом, а затем уже делайте фильтр.

Если это неудобно, тогда остаётся отказаться от фильтра, а просто скрывать строки, как это делает пользователь: щёлкает по заголовку строки правой кнопкой мыши - Скрыть.

Посетитель 07.02.2025

Я в принципе изначально был склонен к версии, что не получится никак, из-за не понятных ограничений экселя. Хотел в этом убедиться. Буду думать костыли. Спасибо за помощь и за предложенные варианты!