Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2016, 16:55   #1
nafanja2007
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 3
По умолчанию заменить нулевые значения или пустые ячейки на длинное тире

Доброго времени суток. Есть таблица, условно 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.

Кросс на http://www.planetaexcel.ru/ мой.

Последний раз редактировалось nafanja2007; 02.06.2016 в 20:07. Причина: поправил алгоритм
nafanja2007 вне форума Ответить с цитированием
Старый 02.06.2016, 17:15   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в диапазоне А1:Т20 установлен формат данных с тире вместо нулей
0 написанный рукой или посчитанный формулой - отображается как тире
пустые ячейки - они и в Африке пустые.
напишите нули - станут тире.
Вложения
Тип файла: xlsx ДлинноеТире.xlsx (9.3 Кб, 57 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.06.2016, 18:46   #3
svsh2016
Форумчанин
 
Регистрация: 16.06.2015
Сообщений: 100
По умолчанию

имеется кросс

http://www.planetaexcel.ru/forum/ind...-tire-procherk
svsh2016 вне форума Ответить с цитированием
Старый 02.06.2016, 20:15   #4
nafanja2007
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
пустые ячейки - они и в Африке пустые.
Насколько я понял, Вы применили специальный формат для ячейки.
То есть если я скопирую в книгу этот формат, и назначу для всей таблицы его, то у меня там где формула имеет значение=0, будет отображаться тире.
А возможно заполнить пустые ячейки нулевыми данными автоматически, для выделенного диапазона? То есть если есть значение или формула в ячейке, оставить как есть, а если ячейка пустая то ввести 0. Пустые ячейки разбросаны по таблице, а таблица достаточно большая.

Последний раз редактировалось nafanja2007; 02.06.2016 в 20:18.
nafanja2007 вне форума Ответить с цитированием
Старый 02.06.2016, 21:31   #5
VictorK
Пользователь
 
Регистрация: 24.05.2008
Сообщений: 64
По умолчанию

Цитата:
Сообщение от nafanja2007 Посмотреть сообщение
А возможно заполнить пустые ячейки нулевыми данными автоматически, для выделенного диапазона?
Статья на сайте Планета Excel:
Заполнение пустых ячеек
VictorK вне форума Ответить с цитированием
Старый 03.06.2016, 09:07   #6
nafanja2007
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 3
По умолчанию

Спасибо, все получилось. Тему можно закрыть.
nafanja2007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить пустые ячейки Vitalii197777 Microsoft Office Access 1 16.04.2014 00:13
Длинное тире ElenaA Общие вопросы Delphi 4 24.06.2010 09:10
Как макросом заменить пустые ячейки словом "пусто" KOSTIK1 Microsoft Office Excel 2 19.12.2009 14:10
Заполнить пустые ячейки ниже значениями из непустой ячейки ing60 Microsoft Office Excel 7 01.04.2009 04:20