Страницы: 1
RSS
Данные из интернета.
 
Здравствуйте, Знатоки! Срезается ноль в данных приходящих из интернета. То есть, если на сервере число 1,850 то excel получает 1,85 . Формат ячеек не при чем. Нельзя ли сделать так, что бы числа приходили такими как они есть в интернете? Может быть что то в настройках? Excel 2010. Заранее благодарен.
 
> Формат ячеек не при чем  
 
Неужели?  
А я вот думаю, что как раз проблема в формате ячеек...  
Пробовали ячейкам присвоить текстовый формат?  
Или формат с заданным количеством цифр после запятой?  
 
Покажите свой файл Excel с веб-запросом.
 
Не. Такого не пробовал.
 
Похоже, придётся в региональных настройках указывать запятую в качестве разделителя разрядов: http://ExcelVBA.ru/pictures/20120205-150-104kb.jpg Тогда результат будет получше: http://ExcelVBA.ru/pictures/20120205-wsv-113kb.jpg
 
Что то не получается найти такие настройки. А где это?
 
Панель управления.
 
{quote}{login=vorimid}{date=05.02.2012 04:04}{thema=Re:}{post}Что то не получается найти такие настройки. А где это?{/post}{/quote}  
а почему не поставить формат 5-го столбца - числовой и с числом десятичных знаков 3 ?
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Так нижние числа становятся гигантскими:) http://clip2net.com/clip/m78420/1328444680-clip-5kb.png
 
{quote}{login=vorimid}{date=05.02.2012 04:25}{thema=Re:}{post}Так нижние числа становятся гигантскими:) http://clip2net.com/clip/m78420/1328444680-clip-5kb.png{/post}{/quote}  
если это проблема - тогда держите макрос:  
 
Dim a As Long, i As Long  
a = Sheets(1).Cells(Rows.Count, 5).End(xlUp).Row  
For i = 9 To a  
With Sheets(1).Range("E" & i)  
If Sheets(1).Range("E" & i) < 99 Then  
.NumberFormat = "0.000"  
Else  
.NumberFormat = "0"  
End If  
End With  
Next i
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
{quote}{login=Юрий М}{date=05.02.2012 04:10}{thema=}{post}Панель управления.{/post}{/quote} Ага, нашел http://clip2net.com/clip/m78420/1328445995-clip-63kb.png только никакая комбинация из форматов и перемены знаков в настройках у меня не дают того эффекта, что на скриншоте у EducatedFool.
 
{quote}{login=LightZ}{date=05.02.2012 04:36}{thema=Re: Re:}{post}{quote}{login=vorimid}{date=05.02.2012 04:25}{thema=Re:}{post}Так нижние числа становятся гигантскими:) http://clip2net.com/clip/m78420/1328444680-clip-5kb.png{/post}{/quote}  
если это проблема - тогда держите макрос:  
 
Dim a As Long, i As Long  
a = Sheets(1).Cells(Rows.Count, 5).End(xlUp).Row  
For i = 9 To a  
With Sheets(1).Range("E" & i)  
If Sheets(1).Range("E" & i) < 99 Then  
.NumberFormat = "0.000"  
Else  
.NumberFormat = "0"  
End If  
End With  
Next i{/post}{/quote}  
 
 
:) Я че то смысл макроса не понял. Он же возвращает все в исходное состояние. Изменением формата мы добавляем нули, нажимаем на кнопочку и все как было становится. Число 912 все равно получается больше чем 1,030. Это не правильно.Под числом 1,030 подразумевается 1030.  Вообще это развитие объекта. Эти числа я перевожу в проценты и составляю по ним диаграмму. И вот эта запятая, которая появилась и будет дальше присутствовать, все сшибает.
 
т.е если в Вашем файле число 1.03 так это должно быть 1030?  
ничего не понял...
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
{quote}{login=LightZ}{date=05.02.2012 05:12}{thema=}{post}т.е если в Вашем файле число 1.03 так это должно быть 1030?  
ничего не понял...{/post}{/quote}  
 
Ну все просто .. Числа показывают развития объекта. В первый день у него было 88 очков. Во второй 132 и т.д. Так вот задача привести числа к одному формату, что бы можно было их использовать в формулах. И после 912 очков должно идти соответственно 1030 очков , а не 1,030.
 
попробуйте так:  
 
Dim s As String, a As Long, i As Long  
a = Sheets(1).Cells(Rows.Count, 5).End(xlUp).Row  
For i = 9 To a  
s = Range("E" & i)  
If s < 10 Then  
Range("E" & i) = s * 1000  
End If  
Next i
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Да отлично! Спасибо. Один вопрос. На отрицательные числа реакция неадекватная. Пример: лист2, ячейка E29. Можно ли это решить?
 
{quote}{login=vorimid}{date=05.02.2012 08:32}{thema=Re: }{post}  
Да отлично! Спасибо. Один вопрос. На отрицательные числа реакция неадекватная. Пример: лист2, ячейка E29. Можно ли это решить?{/post}{/quote} нужно заменить if на case и подставить необходимые значения, у компа буду только завтра вечером, сейчас ваш файл посмотреть не могу
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
{quote}{login=The_Prist}{date=05.02.2012 08:59}{thema=}{post}А не проще после выгрузки выделить столбец, нажать Ctrl+H  
Найти: ,  
Заменить на: пусто(ничего не пишем){/post}{/quote}  
 
А что это дает? Получится абсолютно разный набор чисел, который будет нуждаться в дальнейшей корректировке.
 
{quote}{login=The_Prist}{date=05.02.2012 10:05}{thema=}{post}Тогда:  
 
Sub Repl()  
   Dim avArr, li As Long  
   avArr = Range("E9:E" & Cells(Rows.Count, "E").End(xlUp).Row).Value  
   For li = 1 To UBound(avArr, 1)  
       If Abs(avArr(li, 1)) < 10 Then avArr(li, 1) = avArr(li, 1) * 1000  
   Next li  
   Range("E9").Resize(UBound(avArr, 1)).Value = avArr  
End Sub{/post}{/quote}  
Работает безупречно. Спасибо. Попробовал покрутить варианты и вылез косяк, мой косяк. В процессе развития числа растут и перед запятой слева будет уже не одно а два и три числа. То есть например не 1,728 а 237,874. Нельзя никак подправить что бы и с такими числами работало? плиииз...
 
{quote}{login=The_Prist}{date=06.02.2012 08:46}{thema=}{post}Попробуйте так:...{/post}{/quote}  
 
:)) Все четко. Спасибо большое! И спасибо всем откликнувшимся на мою просьбу.
 
Уважаемые, Знатоки. К сожалению, вынужден опять потревожить Вас и просить помощи с этим же макросом. Все бы хорошо, но пришли отрицательные числа и начался хаос в пересчетах. Я просто не мог предумотреть такой вариант. Поэтому, если это возможно и не в тягость, нельзя ли сделать, что бы он(макрос) уничтожал пришедшие минусы так же как он это делант  запятыми? Пытался сам править, но он только ругается. Это не удивительно:)) Вот макрос сделанный The_Prist(ом), но немного поправленный - вместо одного столбца обрабатывает три. Работает нормально. Только с минусами решить вопрос. Заранее благодарен.  
 
Sub Repl()  
a = Array("E", "G", "H", "I")  
Dim avArr, li As Long  
For Each i In a  
avArr = Range(i & "9:" & i & Cells(Rows.Count, i).End(xlUp).Row).Value  
For li = 1 To UBound(avArr, 1)  
If InStr(avArr(li, 1), ",") Then avArr(li, 1) = avArr(li, 1) * 1000  
Next li  
Range(i & "9").Resize(UBound(avArr, 1)).Value = avArr  
Next  
End Sub
 
Sub Repl()  
   a = Array("E", "G", "H", "I")  
   Dim avArr, li As Long  
   For Each i In a  
       avArr = Range(i & "9:" & i & Cells(Rows.Count, i).End(xlUp).Row).Value  
       For li = 1 To UBound(avArr, 1)  
           If IsNumeric(avArr(li, 1)) Then avArr(li, 1) = Abs(avArr(li, 1))  
           If InStr(avArr(li, 1), ",") Then avArr(li, 1) = avArr(li, 1) * 1000  
       Next li  
       Range(i & "9").Resize(UBound(avArr, 1)).Value = avArr  
   Next  
End Sub
Я сам - дурнее всякого примера! ...
 
Спасибо большое.
Страницы: 1
Читают тему
Наверх
Loading...