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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2021, 15:42   #1
Bublik_RUS
Новичок
Джуниор
 
Регистрация: 26.02.2021
Сообщений: 3
Печаль VBA: как заменить точку на запятую?

Есть столбец с числами где целая и дробная части разделены точкой:
6.044355
5.350425
4.065689
1.917104
1.890207
1.835024
1.697727
1.458852
1.409534
1.291432
1.122644
1.08315
1.078912
0.974991
0.95508
0.951039
0.940611
и т.д.

Есть примитивный скрипт:
Код:
Sub Macro2()
'
' Macro2 Macro
'
Dim sht As Worksheet
'
'Store a specfic sheet to a variable
  Set sht = Sheets("Pool_100")
'
    sht.Columns("D:D").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
Скрипт корректно отрабатывает только на значениях начинающихся с нуля:
6 044 355
5 350 425
4 065 689
1 917 104
1 890 207
1 835 024
1 697 727
1 458 852
1 409 534
1 291 432
1 122 644
108 315
1 078 912
0,974991
0,95508
0,951039
0,940611


Помогите люди добрые, как корректно заменить запятую на точку в ячейках с где целая часть >0?
Bublik_RUS вне форума Ответить с цитированием
Старый 26.02.2021, 16:52   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Будет ли корректно хз, но работает
Код:
Sub aa()
    Dim iLastRow As Long
    Dim sht As Worksheet
    Dim cel As Range
    Set sht = Sheets("Pool_100")
    
    With sht
        iLastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
        For Each cel In .Range(.Range("D1"), .Cells(iLastRow, "D"))
            cel.Value2 = --Replace(Trim$(cel.Value2), ".", ",")
        Next cel
    End With
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.02.2021, 17:18   #3
Bublik_RUS
Новичок
Джуниор
 
Регистрация: 26.02.2021
Сообщений: 3
По умолчанию

Aleksandr H.,
не работает (
Выдает Type mismatch на строке cel.Value2 = --Replace(Trim$(cel.Value2), ".", ",")
Bublik_RUS вне форума Ответить с цитированием
Старый 26.02.2021, 17:30   #4
Bublik_RUS
Новичок
Джуниор
 
Регистрация: 26.02.2021
Сообщений: 3
По умолчанию

Сорян, мой косяк, разобрался. В первой ячейке столбца текстовый заголовок =)

Все отлично работает! Большое спасибо за помощь!
Bublik_RUS вне форума Ответить с цитированием
Старый 26.02.2021, 18:20   #5
Igor1961
Пользователь
 
Регистрация: 05.10.2015
Сообщений: 39
По умолчанию

Тоже думал, что нужен цикл по ячейкам и поиск запятой в каждой, => число преобразовать в строку, но постеснялся выложить свои соображения перед ГУРУ ИМХО: штатная функция (найти и заменить) именно по этому принципу работает? В VBE когда-то с этим сталкивался, кавычки вокруг точки не помогали. Или все же есть варианты в VBA в данных числового типа менять точку на запятую и наоборот?
Igor1961 вне форума Ответить с цитированием
Старый 26.02.2021, 19:58   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
но постеснялся выложить свои соображения перед ГУРУ
совершенно напрасно. интересна тема, знаете ответ - пишите
а так называемые ГУРУ - они как раз и есть "так называемые"))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена символа (заменить в числах разделитель целой и дробной части запятую на точку) Maxim_37 Microsoft Office Excel 5 30.04.2016 23:39
Как в сумме запятую заменить дефисом? Vit@L Общие вопросы Delphi 2 28.09.2012 20:10
как изменить точку на запятую Poltev86 БД в Delphi 6 16.09.2010 16:10
Как поменять точку на запятую Stay Microsoft Office Excel 13 14.04.2010 17:41
Как заменить запятую точной Apostolx Microsoft Office Excel 11 16.10.2009 16:47