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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2010, 21:59   #1
Окоча Юра
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 122
По умолчанию замена пустых ячеек на коротк тире

Привет, всем знатокам! Помогите создать макрос чтобы при выделении определенного диапазона ячеек во все пустые строки этого диапазона автоматически поместилось коротк тире (по центру ячеек)!
Юрик
Окоча Юра вне форума Ответить с цитированием
Старый 02.02.2010, 22:23   #2
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

=Если( A1+B1=0*"-";A1+B1)
0mega вне форума Ответить с цитированием
Старый 02.02.2010, 22:51   #3
Окоча Юра
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 122
По умолчанию

А куда поместить этот код. Если можно макрос!
Юрик
Окоча Юра вне форума Ответить с цитированием
Старый 02.02.2010, 23:16   #4
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

Вообще-то это не макрос
Это обычная обшепринятая функция Exscel
Введите у себя такие же данные как на картинке.
В ячейку С2 запишите :=ЕСЛИ(A2*B2=0;"-";A2*B2)
протяните эту формулу вниз до С7

если чтоб по простому и понятно - тогда эта формула читается так
ЕСЛИ при умножении А2на В2 получается 0; тогда надо писать "значение в кавычках"; во всех остальных случаях надо написать результат умножени А2*В2
Изображения
Тип файла: png Снимок экрана 1.png (10.8 Кб, 194 просмотров)
0mega вне форума Ответить с цитированием
Старый 02.02.2010, 23:41   #5
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Вот Вам сложнейший макрос - во все пустые ячейки выделенного диапазона проставит тире
Код:
Sub Test()
Selection.Cells.SpecialCells(xlBlanks).Value = "-": Selection.HorizontalAlignment = xlCenter
End Sub
Не забывайте - ячейки с формулами, даже если формула вернула пустое значение(""), не являются пустыми.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 02.02.2010 в 23:54. Причина: Забыл про центрирование текста!
The_Prist вне форума Ответить с цитированием
Старый 03.02.2010, 09:37   #6
Окоча Юра
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 122
По умолчанию

А можно ли новый код, который будет заменять ПУСТЫЕ ячейки, несмотря на строку нулевой длины?
Юрик
Окоча Юра вне форума Ответить с цитированием
Старый 03.02.2010, 09:48   #7
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Можно.
Код:
Sub Test()
Selection.Replace Empty, "Replace", xlWhole
Selection.Replace "Replace", Empty, xlWhole
Selection.Cells.SpecialCells(xlBlanks).Value = "-": Selection.HorizontalAlignment = xlCenter
End Sub
Вместо "Replace" можете указать любое сочетание символов, которое никоим образом не может находиться у Вас в ячейках.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 03.02.2010, 10:46   #8
Окоча Юра
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 122
По умолчанию

ИЗВИНИ, НЕ УСПЕЛ ОТВЕТИТЬ! ВАРИАНТ ПОДОШЕЛ - ТО ЧТО И ХОТЕЛ. СПАСИБО!!!!!!!!!!!!
Юрик
Окоча Юра вне форума Ответить с цитированием
Старый 03.02.2010, 11:47   #9
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Код:
Selection.Cells.SpecialCells(xlBlanks).Value = "": Selection.HorizontalAlignment = xlCenter
А вот это высший класс — выровнять по середине! Хорошо получилось, солидно.

Только забыли, что просили тире (а не «программистский» -).

Ввод «типографского» тире на кампюторе — вещь непростая, типа детям до 16 это рано! А серьёзно, надо держать левый Alt, а на цифровой (если не ноутбук) клаве набрать 0151. Для короткого тире (–) 0150.

Последний раз редактировалось Sasha_Smirnov; 03.02.2010 в 12:02. Причина: ответ новобранцам!
Sasha_Smirnov вне форума Ответить с цитированием
Старый 03.02.2010, 11:51   #10
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Только забыли, что просили тире (а не «программистский» -).
Если честно - у меня других "тире" на клавиатуре нет. Если подскажете код символа "не програмистского тире" - буду признателен. И исправлю код макроса на нужное тире.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма пустых ячеек дает 0 Miheiy Microsoft Office Excel 16 23.01.2010 12:05
Вставка группы пустых ячеек в выбранном диапазоне slba Microsoft Office Excel 4 30.10.2009 08:48
как с помощью формулы проставить тире между цифрами ALEKS2008 Microsoft Office Excel 22 21.08.2009 18:04
Почему двоеточие и тире отображается выше обычного? Сергей Орлов Microsoft Office Word 1 10.07.2009 00:53
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL DorianLeroy Фриланс 8 18.02.2009 18:52