Найти ячейки, ссылающиеся на пустые ячейки - PullRequest
1 голос
/ 29 января 2011

Как лучше всего найти ячейки, формулы которых ссылаются на пустые ячейки в Excel VBA.Я хотел бы удалить любую ячейку, которая ссылается на пустую ячейку.

Конкретнее, у меня есть два листа: один лист содержит действительные значения:

Product   Month1  Month2 Month3
Sample1     1        3     5
Sample2     5        7     6
Sample3     3        8     2

Другой представляет собой сводкуview, с формулами для суммирования значений, со следующими формулами:

Product       Month1
=values!A2    =SUM(values!B2:D2)
=values!A3    =SUM(values!B3:D3)
=values!A4    =SUM(values!B4:D4)
=values!A5    =SUM(values!B5:D5)

TOTAL         =SUM(values!B:D)

Теперь в предыдущем примере последний raw ссылается на пустую строку, а именно на пятую строку.Excel покажет эти ячейки как "0".Существует ли механизм удаления этих ячеек в VBA?

Обратите внимание, что я предпочитаю удалять строки, чтобы ИТОГО строка была близка к фактическому последнему значению.В противном случае строка Всего может быть удалена от остальных значений.Кроме того, наличие пустых ячеек с формулами может привести к большому файлу Excel.

РЕДАКТИРОВАТЬ : Уточнил вопрос, чтобы разграничить пустые ячейки.

Ответы [ 4 ]

1 голос
/ 29 января 2011

Я думаю, что Автофильтр - это путь сюда. Если в столбце А есть ноль, я думаю, вы хотите скрыть всю эту строку. Вы говорите «удалить», но мне интересно, лучше ли скрыть.

Установите фильтр на диапазон и для столбца A выберите все, кроме 0.

1 голос
/ 29 января 2011

Всегда ли последняя строка может иметь значение 0?Если да, то вы можете использовать оператор IF, например:

=IF(SUM(values!B2:D2) > 0 ,values!A2,"") =IF(SUM(values!B2:D2),SUM(values!B2:D2),"")

VBA не требуется ...

0 голосов
/ 29 января 2011

Основываясь на ваших изменениях, я думаю, сводная таблица соответствует вашим потребностям. Добавьте продукты к меткам строки и добавьте следующее вычисляемое поле к значениям

=SUM(Month1,Month2,Month3)

Затем добавьте фильтр значений> 0

Я бы не рекомендовал удалять строки в «таблице формул», поскольку в будущем эта серия будет разрушена из-за отсутствующих ссылок.

0 голосов
/ 29 января 2011

Вы можете сделать это без необходимости писать код для удаления строк. Я бы использовал вариант решения Арнольдиуса.

За весь месяц использования:

=IF(LEN(values!A2)>0,SUM(B2:D2),"")

Таким образом, вы можете просто заполнить все формулы, и вам не придется беспокоиться, если вы ссылаетесь на несуществующий продукт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...