Страницы: 1
RSS
Типы данных в VBA, как в VBA работать со значениями типа 1.33169
 
как в VBA работать со значениями типа 1.33169 ? ?


single -3.402823E38 to -1.401298E-45 и 1.401298E-45 to 3.402823E38
double -1.79769313486231E308 to -4.94065645841247E-324 и 4.94065645841247E-324 to 1.79769313486232E308

какой тип данных следует выбрать для переменных которые будут принимать значения типа 1.33169

есть вроде decimal но для как я понял для этого нужно обозначить массив.

Нигман
Изменено: snigman - 16.04.2013 16:52:31
 
Используйте double, с ними меньше ошибок округления, чем с single
 
вроде так и делал использовал double


обрабатываются значения в интервале 1.2хххх - 1.3хххх

макрос отработал без проблем на предыдущем массиве данных - 82000 строки и не одной ошибки.

тот же самый макрос на другом массиве данных (данные идентичны т.е значения в таком же интервале 1.2хххх-1.3хххх) ругается на type mismatch (13 error) возникает когда переменной типа double пытаюсь присвоить значение 1.33169

читаю хелп - вроде 1.33169 это ваще не single и не double ???
 
Это работает?
Код
Sub tt()
    Dim x As Double
    x = 1.33169
    MsgBox x
End Sub
 
snigman, ну а что, так уж трудно пример с Вашими трудностями выложить? Раз уж подсказка Владимира(ZVI) не помогла.  Из темы ухожу. Неинтересно. И уговаривать, угадывать давно надоело.
Я сам - дурнее всякого примера! ...
 
вот пример усеченный вариант, но вполне достаточный чтобы понять мою проблему.

сразу скажу что при присвоении данных я пробовал в том числе и cdbl


я согласен что пример надо было выложить сразу.
Изменено: snigman - 16.04.2013 19:02:23
 
Это для VBA в качестве разделителя целой и дробной части нужна точка, а на листе - запятая.
 
to Hugo это работает!

Более того я же написал что до этого макрос отработал на массиве в 82000 строк и значение присваивалось трем переменным типа double на каждой строке. я выбрал 5 случайных строк и перепроверил ручками на бумаге - все посчитано верно.
 
Цитата
Юрий М пишет:
Это для VBA в качестве разделителя целой и дробной части нужна точка, а на листе - запятая.
точно ! я получаю исходные данные из csv файлов. в предыдущем случае я конвертировал данные сам с помощью макроса и все работало. а в этот раз я загрузил средствами excel данные>из текста и соответственно и точки...
стыдно даже как-то стало  :)  огромное спасибо всем!
 
Выделяем столбцы и Ctrl+H :)
Страницы: 1
Читают тему
Наверх