Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление лишних точек в ячейках - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление лишних точек в ячейках (Макросы/Sub)
Удаление лишних точек в ячейках
Павел_леваП Дата: Суббота, 09.09.2017, 13:31 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день!

прошу подскажите код для удаления лишних точек в ячейках.

Файл пример во вложении.
К сообщению приложен файл: 4810186.xlsx (9.2 Kb)
 
Ответить
СообщениеДобрый день!

прошу подскажите код для удаления лишних точек в ячейках.

Файл пример во вложении.

Автор - Павел_леваП
Дата добавления - 09.09.2017 в 13:31
Udik Дата: Суббота, 09.09.2017, 14:49 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Да тут и без макросов можно
Код

=0+ПОДСТАВИТЬ(ПОДСТАВИТЬ(C1;".";"";2);".";",")
К сообщению приложен файл: 5783701.xlsx (10.1 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеДа тут и без макросов можно
Код

=0+ПОДСТАВИТЬ(ПОДСТАВИТЬ(C1;".";"";2);".";",")

Автор - Udik
Дата добавления - 09.09.2017 в 14:49
Павел_леваП Дата: Суббота, 09.09.2017, 15:41 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Udik,

спасибо!

честно говоря мне такой вариант не подходит так как данных миллионы, и не хотелось бы еще более нагружать файл формулами.


Сообщение отредактировал Павел_леваП - Суббота, 09.09.2017, 15:45
 
Ответить
СообщениеUdik,

спасибо!

честно говоря мне такой вариант не подходит так как данных миллионы, и не хотелось бы еще более нагружать файл формулами.

Автор - Павел_леваП
Дата добавления - 09.09.2017 в 15:41
Michael_S Дата: Суббота, 09.09.2017, 16:16 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
[vba]
Код
Sub PointReplase()
    Dim Arr(), i&, Rn As Range
    Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
    Arr = Rn.Value
    For i = 1 To UBound(Arr)
        If Not IsNumeric(Arr(i, 1)) Then Arr(i, 1) = Val(Arr(i, 1))
    Next
    Rn.Value = Arr
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Sub PointReplase()
    Dim Arr(), i&, Rn As Range
    Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
    Arr = Rn.Value
    For i = 1 To UBound(Arr)
        If Not IsNumeric(Arr(i, 1)) Then Arr(i, 1) = Val(Arr(i, 1))
    Next
    Rn.Value = Arr
End Sub
[/vba]

Автор - Michael_S
Дата добавления - 09.09.2017 в 16:16
Udik Дата: Суббота, 09.09.2017, 16:36 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Michael_S, чет я сомневаюсь в действенности val в данном случае. Она обрежет все что за второй точкой

подправить цикл надо

[vba]
Код

For i = 1 To UBound(Arr)
        If Not IsNumeric(Arr(i, 1)) Then
           Arr(i, 1)  = Application.WorksheetFunction.Substitute( Arr(i, 1) , ".", "", 2)

           Arr(i, 1) = Val(Arr(i, 1))
       end if
    Next
[/vba]


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Суббота, 09.09.2017, 16:54
 
Ответить
СообщениеMichael_S, чет я сомневаюсь в действенности val в данном случае. Она обрежет все что за второй точкой

подправить цикл надо

[vba]
Код

For i = 1 To UBound(Arr)
        If Not IsNumeric(Arr(i, 1)) Then
           Arr(i, 1)  = Application.WorksheetFunction.Substitute( Arr(i, 1) , ".", "", 2)

           Arr(i, 1) = Val(Arr(i, 1))
       end if
    Next
[/vba]

Автор - Udik
Дата добавления - 09.09.2017 в 16:36
Павел_леваП Дата: Суббота, 09.09.2017, 17:18 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Michael_S,

спасибо!

а как применить данный код к выделенным ячейкам, а не строго к столбцу С?


Сообщение отредактировал Павел_леваП - Суббота, 09.09.2017, 17:20
 
Ответить
СообщениеMichael_S,

спасибо!

а как применить данный код к выделенным ячейкам, а не строго к столбцу С?

Автор - Павел_леваП
Дата добавления - 09.09.2017 в 17:18
Павел_леваП Дата: Суббота, 09.09.2017, 17:19 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Udik,

[vba]
Код
    
Dim Arr(), i&, Rn As Range
    Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
    Arr = Rn.Value
For i = 1 To UBound(Arr)
        If Not IsNumeric(Arr(i, 1)) Then
        Arr(i, 1) = Application.WorksheetFunction.Substitute(Arr(i, 1), ".", "", 2) ' выдает ошибку в этой строке
        Arr(i, 1) = Val(Arr(i, 1))
    End If
    Next
[/vba]
 
Ответить
СообщениеUdik,

[vba]
Код
    
Dim Arr(), i&, Rn As Range
    Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
    Arr = Rn.Value
For i = 1 To UBound(Arr)
        If Not IsNumeric(Arr(i, 1)) Then
        Arr(i, 1) = Application.WorksheetFunction.Substitute(Arr(i, 1), ".", "", 2) ' выдает ошибку в этой строке
        Arr(i, 1) = Val(Arr(i, 1))
    End If
    Next
[/vba]

Автор - Павел_леваП
Дата добавления - 09.09.2017 в 17:19
Udik Дата: Суббота, 09.09.2017, 18:06 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Не знаю у меня без ошибок отработало.
К сообщению приложен файл: 6416322.xlsm (15.4 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеНе знаю у меня без ошибок отработало.

Автор - Udik
Дата добавления - 09.09.2017 в 18:06
Michael_S Дата: Суббота, 09.09.2017, 18:24 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
val в данном случае. Она обрежет все что за второй точкой
вообще-то да. Я не посмотрел, что точку нужно просто убрать., а не откинуть.
Цитата Павел_леваП, 09.09.2017 в 17:18, в сообщении № 6 ()
а как применить данный код к выделенным ячейкам,

[vba]
Код
Set Rn = Selection
[/vba]
 
Ответить
Сообщение
val в данном случае. Она обрежет все что за второй точкой
вообще-то да. Я не посмотрел, что точку нужно просто убрать., а не откинуть.
Цитата Павел_леваП, 09.09.2017 в 17:18, в сообщении № 6 ()
а как применить данный код к выделенным ячейкам,

[vba]
Код
Set Rn = Selection
[/vba]

Автор - Michael_S
Дата добавления - 09.09.2017 в 18:24
KuklP Дата: Суббота, 09.09.2017, 19:00 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Варианты:
[vba]
Код
Public Sub www()
    Dim c As Range
    On Error Resume Next
    For Each c In Selection.SpecialCells(2, 2).Cells
        c = StrReverse(Replace(StrReverse(c.Value), ".", "", , 1))
    'or  c = Evaluate("SUBSTITUTE(" & c.Address & ",""."","""",2)")
    Next
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВарианты:
[vba]
Код
Public Sub www()
    Dim c As Range
    On Error Resume Next
    For Each c In Selection.SpecialCells(2, 2).Cells
        c = StrReverse(Replace(StrReverse(c.Value), ".", "", , 1))
    'or  c = Evaluate("SUBSTITUTE(" & c.Address & ",""."","""",2)")
    Next
End Sub
[/vba]

Автор - KuklP
Дата добавления - 09.09.2017 в 19:00
Павел_леваП Дата: Суббота, 09.09.2017, 19:08 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем спасибо!

работает!
 
Ответить
СообщениеВсем спасибо!

работает!

Автор - Павел_леваП
Дата добавления - 09.09.2017 в 19:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление лишних точек в ячейках (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!