Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
заменить нулевые значения на длинное тире (прочерк)
 
Доброго времени суток. Есть таблица, условно 200 столбцов, 200 строк. В некоторых ячейках введены формулы, с основном сумма других ячеек, как по строкам, так и по столбцам. А в некоторых ячейках вводятся данные ручками. Требуется во всех ячейках с нулевыми значениями отобразить длинное тире (прочерк). Длинное тире должно отображаться и в тех ячейках где не введены данные (пустая ячейка), и там где формула насчитала ноль.
Если возможно, то формула не должна затираться длинным тире.
Алгоритм_1
1. Изменить формат ячеек на общий. (может и не нужно...)
2. Макрос проверяет пустая ячейка или нет, если непустая то преобразует формулу в значение. Если значение (введено руками) оставляет как есть.
3. Если пустая то ставит в нее длинное тире (юникод 2014).
4. проверяет не пустые ячейки, если "значение=0", то заменить на длинное тире.
Макрос выполняется в выделенном диапазоне.

Алгоритм_2 (не уверен в правильности)
1. Изменить формат ячеек на общий. (может и не нужно...)
3. Если ячейка не пустая, проверяет есть ли формула в ячейке, если есть, то изменить формулу на =ЕСЛИ(A1+A2=0;"-";A1+A2), где A1+A2 формула которая была в ячейке.
4. Если в ячейке нет формулы (есть значение введенное руками) проверяет "значение=0", если да, то заменить на длинное тире. !Но тут случается конфуз. Если эта ячейка участвует в формуле, формула выдаст ошибку. При этом если формула типа A1+A2 будет ошибка, если это =СУММ(B2:B15) то ошибки не будет. Что с этим сделать не знаю...!
5. Если значение не равно нулю (текст или число отличное от нуля), то оставить как есть.

Помогите описать это на VBA.
Изменено: nafanja2007 - 02.06.2016 20:03:23 (поправил алгоритм)
Страницы: 1
Наверх