With Sheets("2") st5 = Split(.[A5].Value, ";") .[J17] = Trim$(st5(0)) .[A1] = Trim$(st5(1)) .[A2] = Trim$(st5(2)) .[A3] = Trim$(st5(3)) End With
[/vba] Разношу из ячейки A5 в J17 число и столкнулся с интересной ситуацией: -Если десятичная запись дробного числа начинается с 0, то запятая переносится правильно (типа 0,123) -Если десятичная запись дробного числа начинается с не 0, то запятая переносится правильно, при количестве знаков после запятой до 2х (типа 1,23) -Если десятичная запись дробного числа начинается с не 0, то запятая переносится правильно, при условии присутствия в числе буквы (типа 1,234ы) В виду не понимания Ввиду непонимания происходящего, но пользуясь тем, что перенос с буквами даёт ожидаемый результат я сначала добавляю букву в число в A5, затем убираю эту букву из J17. [vba]
Код
Range("J17:J17").Replace "ы", "", xlPart
[/vba]
Добрый день дамы и господа [vba]
Код
With Sheets("2") st5 = Split(.[A5].Value, ";") .[J17] = Trim$(st5(0)) .[A1] = Trim$(st5(1)) .[A2] = Trim$(st5(2)) .[A3] = Trim$(st5(3)) End With
[/vba] Разношу из ячейки A5 в J17 число и столкнулся с интересной ситуацией: -Если десятичная запись дробного числа начинается с 0, то запятая переносится правильно (типа 0,123) -Если десятичная запись дробного числа начинается с не 0, то запятая переносится правильно, при количестве знаков после запятой до 2х (типа 1,23) -Если десятичная запись дробного числа начинается с не 0, то запятая переносится правильно, при условии присутствия в числе буквы (типа 1,234ы) В виду не понимания Ввиду непонимания происходящего, но пользуясь тем, что перенос с буквами даёт ожидаемый результат я сначала добавляю букву в число в A5, затем убираю эту букву из J17. [vba]
[/vba] В VBA запятая - разделитель разрядов, а точка - разделитель целой и дробной части. У нас 12 234, 567 У них 12,234.567 Вот Ваша запятая и преобразуется в разделитель разрядов
А так? [vba]
Код
.[J17] = --(st5(0))
[/vba] или [vba]
Код
.[J17] = CDbl(st5(0))
[/vba] В VBA запятая - разделитель разрядов, а точка - разделитель целой и дробной части. У нас 12 234, 567 У них 12,234.567 Вот Ваша запятая и преобразуется в разделитель разрядов_Boroda_
Проблема в том что при у Вас числа с разделителем дробной части "," а в ВБА - разделитель "." Поэтому и получается белиберда. можно сделать число в ВБА. Например так: [vba]
Код
.[J17] = CDbl(Trim(st5(0)))
[/vba] или замените запятую на точку: [vba]
Код
.[J17] = Replace(Trim(st5(0)), ",", ".")
[/vba] _Boroda_, опередил .
Проблема в том что при у Вас числа с разделителем дробной части "," а в ВБА - разделитель "." Поэтому и получается белиберда. можно сделать число в ВБА. Например так: [vba]