Страницы: 1
RSS
Автозамена в макросе: "." на "" - кроме точек удаляются запятые
 
Уважаемые коллеги,  
Помогите, пожалуйста, кто чем может. )    
Проблема следующая: при выгрузке из бухгалтерской программы, суммы имеют следующий вид:    
143.918,10  
8.296.118,41  
719,81  
Чтобы сделать их "считаемыми", я хочу удалить точки. Автозамену хочу включить в состав макроса, приводящего жуткий отчет в приличный вид. Код выглядит так (записано макрорекордером):  
 
Sub Delete_Points()  
'  
' Delete_Points Macro  
' Macro recorded 26.06.2008    
   Columns("C:H").Select  
   Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False  
   Range("A1").Select  
End Sub  
 
В итоге получаю следующее:  
143918,10  
8296118,41  
71981  
 
То есть в числах, в которых точек нет, вместо точек зачем-то удаляются запятые. 8-/    
Заранее спасибо за помощь!
 
поменяйте перед выгрузкой десятичный разделитель на ","  , а разделитель разрядов на "." и уберите галку использовать системные разделители.
 
а когда загрузите, то поставьте все обратно, как было
 
Огромнейшее спасибище за оперативную и эффективную помощь, уважаемый Слэн! Это настолько просто и оригинально, что даже дух захватывает. )) Мне бы даже в голову такое не пришло! )  
ЗЫ Конечно, немного напрягает галочки переключать...
 
ну и сделайте это макросом
 
Галочки макросом?.. Ну нет, это уже выше моих сил. )  
Еще раз большое спасибо!
 
Наверное так )  
 
Меняем перед выгрузкой  
 
Sub Макрос1()  
   With Application  
       .DecimalSeparator = ","  
       .ThousandsSeparator = "."  
       .UseSystemSeparators = False  
   End With  
End Sub  
 
 
Возвращаем всё на место  
 
Sub Макрос2()  
   With Application  
       .DecimalSeparator = ","  
       .UseSystemSeparators = True  
   End With  
End Sub
 
На такое я даже не рассчитывала. :) Добавила себе пользовательскую кнопочку. ) Спасибо, ребята!
 
А тут и не надо на нас рассчитывать, делаете так  
 
1) Открываете любой файл Excel  
2) меню Сервис - Макрос - Начать запись... - ОК (пойдёт запись макроса)  
3) открываете меню Сервис - Параметры - Международные - снимаете галочку "Использовать системные разделители", ставите запятую в окошке Разделит. целой и дробной части и точку в окошке Разделитель разрядов  
4) нажимаете ОК  
5) Останавливаете запись макроса  
6) Нажимаете Alt+F11 и смотрите, что записал макрос. А он запишет тот код, который я вам дал (Макрос1)  
 
P.S. Потом опять запускаете запись макроса и возвращаете настройки обратно, останавливаете запись макроса и опять смотрите, что записал макрос.
Страницы: 1
Читают тему
Наверх