Страницы: 1
RSS
После обработки макросом в числовых значениях разделители точки меняются на запятые и нули пропадают, точки как разделитель у меня стоят специально.
 
Сам макрос выглядит так(файл с примером прилагаю):
Код
Sub Удалить_пробелы1()
 ' есть случаи перевода точек в запятые -- имей введу!
    Dim arr(), spl
    Dim lr As Long, lc As Long, I As Long, ii As Long, j As Long
   
    lr = Cells.Find(what:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
        SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).row
    lc = Cells.Find(what:="*", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, _
        SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False).Column
    arr() = Range("a1").Resize(lr, lc).Value
    For I = 1 To UBound(arr, 1)
        For j = 1 To UBound(arr, 2)
            spl = Split(arr(I, j), Chr(10))
            For ii = 0 To UBound(spl)
                spl(ii) = WorksheetFunction.Trim(spl(ii))
            Next ii
            arr(I, j) = Join(spl, Chr(10))
        Next j
    Next I
    Range("a1").Resize(lr, lc).Value = arr()
 
End Sub
в столбцах N:R находятся числа с разделителями точками, их Sub Удалить_пробелы1 и кромсает.
может кто подскажет как в коде поменять, чтобы точки не трогало оно?? меня хватило на "заплатку", обратная замена запятых на точки:
Код
Sub tочка()
'    '4. Замена запятой на точку.
        ActiveSheet.Columns("N:R").Replace what:=",", Replacement:=".", _
        LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

 
 
Домкрат, у меня в файле разделитель запятая...навернео из региональных настроек
а еще нет нулей - 0 это это только вид - в ячейке нет никаких нулей
Изменено: Mershik - 29.04.2020 15:18:34
Не бойтесь совершенства. Вам его не достичь.
 
Я пас, у меня в примере нет ни точек, ни пробелов...
 
в настройках спецом выставленно разделитель как ТОЧКА, потому что в другой программе числа с запятой не читаются.
 
Цитата
Домкрат написал:
в другой программе числа с запятой не читаются
- нормальная программа должна брать число, а не "число".
 
Цитата
Hugo написал:
нормальная программа должна брать число, а не "число"
я им обязательно передам!
https://www.alta.ru/programs/alta-gtd/

Цитата
Mershik написал: в ячейке нет никаких нулей
правда?
 
В ячейке нулей нет, их не может быть у числа! Не говорю конечно про 10 или 0,0001.
А отобразить можно как угодно, это дело формата ячейки.
Изменено: Hugo - 29.04.2020 15:04:14
 
Домкрат, а о чём Ваш скрин?
 
о том что нулей кроме меня никто не видит в ячейке(

Hugo, хорошо, пускай нулей не будет. не вопрос. мне сказали, что формат должен быть три знака после запятой я и делаю.
Изменено: Домкрат - 29.04.2020 15:21:08
 
оффтоп:
Цитата
Домкрат написал:
я им обязательно передам!
Цитата
Рабочий инструмент декларанта. Предназначен для максимально быстрого и удобного заполнения
Я прямо уже вот вижу как удобно это все заполнять!
Вот горшок пустой, он предмет простой...
 
PooHkrd, то что раньше я делал за 8 часов(без обеда и перекура), сейчас делается за 25 минут(благодаря макросам). Норм у программа, правда косяков хватает, но в тех.поддержке ребята работают- исправляют.
 
Домкрат, да не может быть нулей, про которые Вы говорите. Попробуйте ввести в ячейку 1,10000. что будет отображаться в строке формул? Даже если Вы форматом установите хоть 5 знаков после запятой.
Вам об этом все говорят, а Вы пытаетесь скрином убедить нас в обратном.
Яркий пример: в ячейке может ОТОБРАЖАТЬСЯ текст Апрель, но в строке формул Вы увидите обычную дату.
 
Юрий М, яж не против! я только за!
 
Добрый день! Ваш макрос все числа превращает в текст (строка 17 в #1). Чтобы избежать этого, примените следующую схему:
Код
For j = 1 To UBound(arr, 2)
  If VarType(arr(I, j)) = vbString Then
  ' -------  
  End If
Next j
Изменено: sokol92 - 29.04.2020 16:05:06
Владимир
 
sokol92, Супер!, спасибо за помощь!
Страницы: 1
Наверх