Тип переменной в экселе

Программирование на Visual Basic for Applications
Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Тип переменной в экселе

Сообщение Calvin » 21.06.2006 (Ср) 18:15

Здраствуйте, уважаемые!
Стопорнулся я на элементарщине, но факт!
Допустим, мне нужно взять значение какой-либо ячейки и в ней же это значение применить преобразовав в формулу.
Код: Выделить всё
range("a1").formula="=" & range("a1").value & "*25"

но проблема в том, что если значение ячейки изначально нецелое число, то во время преобразования в формулу выдается ошибка, так как компилятор не воспринимает значение "4,25". Ему нужно "4.25". И чего то я не могу эту запятую убрать при помощи FORMAT или Csng. Если тупо заменить, то можно. Но меня интересует, можно ли это сделать функцией.
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2006 (Чт) 3:12

range("a1").formulalocal = ...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 22.06.2006 (Чт) 12:49

Код: Выделить всё
Range("H60").FormulaLocal = "=" & Range("H60").Value & "*1.2"

не работает....ругается, если нецелое число
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2006 (Чт) 12:52

Юзать моск полезно и правильно.
formulalocal принимает формулу в стандарте текущей системной локали. Но до тех пор, пока автор использует неявное преобразование типов, работать ничего, естественно, не будет.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 22.06.2006 (Чт) 13:03

честно говоря нифига не понял

вот нашел вариант
Код: Выделить всё
Range("H60").Formula = "="  &  Replace(Range("H60").Value, ",", ".") & "*1.2"
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2006 (Чт) 13:05

Calvin
Скажи честно, тебе известна разница между числом и строковым представлением числа?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 22.06.2006 (Чт) 14:33

Range("H60").FormulaLocal = "=" & Range("H60").Value & "*" & 1.2

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 22.06.2006 (Чт) 17:24

GSerg

известно (я в принципе из-за этого и написал, просто сформулировал не так как ты)...я просто не понял, что ты изначально имел ввиду
а вообще мне кажется это "глюк" ВБА

Nicky спасибо, буду знать

а чем отличается (конкретно) FormulaLocal от Formula?....принцип то понятен
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2006 (Пт) 1:57

А мне кажется, что это не глюк VBA. Наоборот, всё совершенно корректно.
А чем отличается - выше по топику посмотри.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 23.06.2006 (Пт) 12:17

GSerg
если бы мне было все понятно, я б не переспрашивал....
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2006 (Пт) 12:46

GSerg писал(а):formulalocal принимает формулу в стандарте текущей системной локали.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

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

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

    TopList