Страницы: 1
RSS
Макрос для того, чтобы в столбце была заполнена только одна ячейка
 
Ребята, будьте добры, помогите с макросом.

Есть задача (на примере буду объяснять) - в столбце B всегда должна быть заполнена только одна ячейка. Если заполняется вторая, то автоматически удаляются данные в других ячейках данного столбца.

Проблема - если оставить букву в столбце B  напротив цифры 2, потом применить фильтр в столбце A на значения 3, и поставить букву напротив числа 3, то при снятии фильтра окажется, что со скрытых ячеек другие значения в столбце B не удалились. Также, почему-то, при нажатии кнопки Delete в столбце B, удаляется и заголовок.

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

Благодарю за помощь.
 
Может тогда циклом очищать ячейки?
Проблема с удалением заголовка не наблюдается.
 
Юрий М, можете подсказать как? Решения сам найти не смог.
У меня удаляет заголовок, если удалить все значения из ячеек B2:B. Может из-за версии Office глючит...
 
Вот.
 
Юрий М, благодарю, но почему она действует только до 16 строчки?
При этом видно, как макрос нагружает процессор, гоняя по всем миллионам ячеек в столбце.

Больше других вариантов нет?
 
Цитата
EvgeniyLFC написал:
почему она действует только до 16 строчки?
Потому что последняя строка у меня определяется по первому столбцу, в нём последнее значение как раз в строке 16.

Цитата
EvgeniyLFC написал:
видно, как макрос нагружает процессор, гоняя по всем миллионам ячеек в столбце.
С чего Вы решили, что МИЛЛИОНЫ? Макрос перебирает ровно 15 ячеек - со второй по шестнадцатую. Можете убедиться в этом сами, прогнав его пошагово.
 
Юрий М, проблема в том, что у меня файлы по 1000-10000 строк. Если такой метод применять, то у меня начинает файл прогружаться конкретно, что не есть хорошо.
За метод спасибо. Но думаю, нужно искать другое решение.
 
Цитата
EvgeniyLFC написал:
Больше других вариантов нет?
Есть: программно снимайте фильтр, затем возвращайте его. Тогда можно будет очистить сразу диапазон.
 
Ещё одна идея: целиком удаляем столбец В, затем подставляем str в "новый" столбец и останется вернуть текст в заголовке.
 
Юрий М, вариант хороший, поясните пару моментов:
- как применить это в другому столбцу? Смена номера столбца и ячеек не помогает.
- как сделать, чтобы правило начало действовать не со второй строчки, а с 3-4, например?
- форматирование слетает, не сильно тревожит, но все же.

А тот способ, что у меня в примере - нет функции, которая бы не видимые ячейки удаляла, на все в заданном диапазоне?
 
Цитата
EvgeniyLFC написал:
как применить это в другому столбцу? Смена номера столбца и ячеек не помогает.
К какому другому?
 
Юрий М, к 32 столбцу AF, например, с 3-ей строки. Ищу универсальное решение, чтобы к любому столбцу применить можно было, и с любой строки, так как заголовок может быть 2-3-х строчным.  
 
32-ой далеко крутить )) См. вариант для 10-го столбца. Комментарии в коде помогут понять принцип.
 
Юрий М, огромная благодарность!
Страницы: 1
Наверх