чё-то я не понял с форматами...

Программирование на Visual Basic for Applications
coshi
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 31.01.2005 (Пн) 10:57

чё-то я не понял с форматами...

Сообщение coshi » 10.03.2005 (Чт) 12:23

Есть такой кусочек кода:
Код: Выделить всё
 
            ActiveSheet.Cells(i, j + 2).NumberFormat = "0"
            acc(k) = CStr(ActiveSheet.Cells(i, j + 2).Value)
            k = k + 1

Но почему-то при точке останова на средней строке видно, что
ActiveSheet.Cells(i, j + 2).Value равен такой вот штуке - "4,09118100000005E+19" а не 20 значное число, как должно быть.

p.s.: если в этот момент посмотреть на таблицу, видно, что на этом месте (i, j+2) стоит правильное 20-значное число.

Как быть?Я идиот! Убейте меня, кто-нибудь!???

vrodo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 109
Зарегистрирован: 09.10.2003 (Чт) 18:45
Откуда: Дубна МО, Москва

Сообщение vrodo » 10.03.2005 (Чт) 12:34

Все верно

Код: Выделить всё
ActiveSheet.Cells(i, j + 2).NumberFormat = "0"
acc(k) = ActiveSheet.Cells(i, j + 2).Text
k = k + 1


Попробуй вот так
Чтобы понять свои ошибки их достаточно написать (c)
Интернет большой, ему видней
С наилучшими Пожеланиями и Всех Благ :D

coshi
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 31.01.2005 (Пн) 10:57

Сообщение coshi » 10.03.2005 (Чт) 13:06

ага, сгодилось

Deja-vu
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 55
Зарегистрирован: 02.11.2004 (Вт) 22:02

Сообщение Deja-vu » 10.03.2005 (Чт) 23:05

А что у тебя за вычисления ведутся, если не секрет? :) Просто столько цифр после запятой не всегда встретишь. :lol:
ПС: насколько я понял, value возвращает данные, учитывая формат ячейки в Excel, а теxт возвращает именно текст, то есть не как число... хотя для Excel это почти не имеет значения, если не использовать особые вычисления... видимо, у тебя неправильно формат задан, либо нет дополнительной опции, какой-то...

Вот кстати, попробуй вот это...

ActiveSheet.Cells(i, j + 2).NumberFormat = "0.0000000000000000000000000000"
acc(k) = CStr(ActiveSheet.Cells(i, j + 2).Value)
k = k + 1

vrodo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 109
Зарегистрирован: 09.10.2003 (Чт) 18:45
Откуда: Дубна МО, Москва

Сообщение vrodo » 11.03.2005 (Пт) 11:31

Формат ячейки влияет ТОЛЬКО на отображение данных
а не на само значение
Чтобы понять свои ошибки их достаточно написать (c)
Интернет большой, ему видней
С наилучшими Пожеланиями и Всех Благ :D

Deja-vu
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 55
Зарегистрирован: 02.11.2004 (Вт) 22:02

Сообщение Deja-vu » 11.03.2005 (Пт) 22:33

vrodo Спасибо за поправку.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList