Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Преобразование строки в число в VBA / 11 сообщений из 11, страница 1 из 1
22.11.2007, 11:26:23
    #34957568
AlyoNa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
есть строка, например '1 000 000', т.е. между цифрами стоят пробелы.
Как её преобразовать в число?
...
Рейтинг: 0 / 0
22.11.2007, 11:31:17
    #34957586
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
Точно не знаю, но думаю так

Код: plaintext
=ПОДСТАВИТЬ(A1;" ";"")
...
Рейтинг: 0 / 0
22.11.2007, 11:35:20
    #34957606
udgeen69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
Функция CInt
CInt(Expression)

Функция CInt(Conversion to Integer) используется для приведения выражения в тип Integer
Возвращаемое значение

Функция CInt возвращает значение аргумента, преобразованное в числовой целый тип данных Integer. Дробная часть при этом округляется
Параметры

Expression
Любое числовое выражение или строка,представляющая число от -32768 до 32767
Если числовое значение Expression не попадает в диапазон допустимых значений, происходит ошибка стадии выполнения Overflow.
Если Expression имеет тип данных String,то он должен быть числом, иначе возникает ошибка стадии выполнения Type mismatch.
Если дробная часть Expression равна 0.5, CInt всегда округляет его до ближайшего четного числа, т.е. CInt(2.5)= 2, a CInt(1.5)= 2

Пример Dim A, retval A=1234.5678 ' A имеет тип Double retval = CInt(A)' преобразуем в Integer Debug.Print retval ' получаем 1235 Категория

отсюда


А обрезать пробелы можно Replace(Str," ","")...
...
Рейтинг: 0 / 0
22.11.2007, 16:25:38
    #34959001
George Ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
=ЗНАЧЕН(A1)
...
Рейтинг: 0 / 0
22.11.2007, 18:28:33
    #34959478
George Ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
Вот в справке есть:

Type Conversion Functions
Each function coerces an expression to a specific data type .
Syntax
CBool( expression )
CByte( expression )
CCur( expression )
CDate( expression )
CDbl( expression )
CDec( expression )
CInt( expression )
CLng( expression )
CSng( expression )
CStr( expression )
CVar( expression )
The required expression argument is any string expression or numeric expression .


ну и т.д.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
16.04.2009, 15:33:32
    #35936451
S-Pon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
Подскажите,почему не получается преобразовать?

iString="3.333"
iDouble=cdbl(iString)

???
...
Рейтинг: 0 / 0
16.04.2009, 15:49:11
    #35936506
birk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
S-Pon,

мб так
Код: plaintext
1.
iString="3,333"
iDouble=cdbl(iString)
...
Рейтинг: 0 / 0
16.04.2009, 16:22:46
    #35936625
S-Pon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
Да,так работает. Но вот что у меня в реальной жизни: на листе данные в формате "#,##" -> эти данные загружатся в combobox. Далее я хочу переменной типа double присвоить:
iDouble=CDbl(comboBox1.value). Выдается ошибка 13. И я вижу,что comboBox1.value="3.33". Что за беда?
...
Рейтинг: 0 / 0
16.04.2009, 16:43:46
    #35936686
Aster32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
iDouble=CDbl(Left(comboBox1.value, Len(comboBox1.value) - 3) & "," & Right(comboBox1.value, 2))
...
Рейтинг: 0 / 0
16.04.2009, 16:50:22
    #35936710
Aster32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
или так:

iDouble=CDbl(Replace(comboBox1.value, ".", ","))
...
Рейтинг: 0 / 0
16.04.2009, 17:00:36
    #35936743
S-Pon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в число в VBA
Да, можно и так.. Но я просто сделал combobox1.addItem cstr(cells(i,3)) (до этого было combobox1.addItem cdbl(cells(i,3)), и все заработало. Теперь combobox1.value="3,33" и ф-я cdbl() преобразует прекрасно.
Спасибо за советы)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Преобразование строки в число в VBA / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]