Вопрос про тип данных, Excel.

Программирование на Visual Basic for Applications
vegarulez
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 01.11.2006 (Ср) 14:24

Вопрос про тип данных, Excel.

Сообщение vegarulez » 06.05.2008 (Вт) 13:55

Всем привет!
Народ поможите с такой проблемкой, есть ячека, числовая, в которой записано число в формате 1,02 допустим.
я это число помещаю в переменную и в нужном мне месте кода пытаюсь вставить в формулу, но VB чото ругается... подскажите как праивльно привести к нужному типу данных, а кокретнее как сделать не 1,02 а 1.02 потому как в формуле в таком формате число используется а я его храню в переменной как 1,02. Подскажите как правильно сделать. Вот код:

Код: Выделить всё
Sub Сформировать()

Dim y

' Dim y As Double


y = Range("B2").Value2

    Range("O" + Range("O2").Text).Select
    ActiveCell.FormulaR1C1 = "=RC[-8]*R1C12*IF(RC[-8]="""",0," & y & ")"


Ругань естественно на последнюю строку. в том месте де приклеиваю y.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.05.2008 (Вт) 14:29

Val/Str всегда используют в качестве разделителя десятичную точку, независимо от локальных настроек.
CDbl/Format используют локальные настройки.
Lasciate ogni speranza, voi ch'entrate.

vegarulez
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 01.11.2006 (Ср) 14:24

Сообщение vegarulez » 09.05.2008 (Пт) 11:42

Если чесно, то ничего не понял.
Объясни поподробнее. Я если даже определяю переменную как
Dim y As Double
то всё равно когда считаваю в неё из ячеки в ней находится значение 1,02 а в формулу нужно подставить 1.02 уже стринг.
формат что-то не пойму, как мне может помочь. Пытаюсь вот так сделать
z=Format(y,"0.00")
но всё равно z получается 1,02

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 09.05.2008 (Пт) 13:32

Код: Выделить всё
Sub test1()
    Dim y
    y = Range("B2")
    If VarType(y) = vbString Then y = Replace(y, ",", ".")
    Range("O" & Range("O2")).FormulaR1C1 = "=RC[-8]*R1C12*IF(RC[-8]="""",0," & y & ")"
End Sub
Привет,
KL


Вернуться в VBA

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

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

    TopList