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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2012, 02:31   #1
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию Как правильно произвести замену?

Здравствуйте форумчане.
Поздравляю с Новым годом и наступающим Рождеством!

Подскажите,если кто знает:
Excel содержит числовые данные ввиде 1907.42000
произвожу программно замену
Application.ReplaceFormat.NumberFor mat = "#,##0.00"
Cells.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=True

,т.е пытаюсь все точки заменить на запятые...
Вместо требуемого 1907,42, получаю 190 742 000,00
Как с этим бороться?

Есть способ задействовать цикл и для каждой ячейки провести
D="1907.42000" - значение ячейки исх
p = Val(D)
Получаем (т.е преобразовали в число)
p=1907,42

Как исп replace добиться требуемого результата?
clever77 вне форума Ответить с цитированием
Старый 05.01.2012, 03:13   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1. отмечаете колонку с данными
2. ставите числовой формат с двумя знаками в дробной части
3. нажимаете Ctrl+H (найти и заменить), заменить . (точки) на , (запятые), жмете заменить все. закрываете диалог.

получилось?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.01.2012, 12:20   #3
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
1. отмечаете колонку с данными
2. ставите числовой формат с двумя знаками в дробной части
3. нажимаете Ctrl+H (найти и заменить), заменить . (точки) на , (запятые), жмете заменить все. закрываете диалог.

получилось?

А макросом?
clever77 вне форума Ответить с цитированием
Старый 05.01.2012, 12:28   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Был бы пример, макрос был бы еще ночью.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 05.01.2012, 19:41   #5
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Был бы пример, макрос был бы еще ночью.
Вот пример того что надо, что есть и что получается в 97_2003 и 2010

Причем макрос который приводится записан самим Excel 'ем, когда я делал замену в ручную.... Но на практике этот программный код работает не корректно.....
Вложения
Тип файла: rar пример.rar (20.3 Кб, 10 просмотров)

Последний раз редактировалось clever77; 05.01.2012 в 19:47.
clever77 вне форума Ответить с цитированием
Старый 06.01.2012, 00:57   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Всего-то один знак поменял:-)
Вложения
Тип файла: rar пример 97_2003.rar (9.7 Кб, 10 просмотров)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как произвести фильтрацию данных Dronlion Microsoft Office Excel 2 12.04.2011 22:48
Как реализовать замену клеток s3m Microsoft Office Access 9 18.11.2010 13:59
Как произвести простые вычисления ячеек в VB segail Microsoft Office Excel 18 13.12.2009 21:42
как произвести поиск в другой открытой книге? ShamanK Microsoft Office Excel 1 08.12.2009 05:30
Как произвести замену всех двузначных чисел на "00число которое заменено" ВЯЧ Microsoft Office Excel 5 06.12.2006 01:02