Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/293: Рейтинг темы: голосов - 293, средняя оценка - 4.95
168 / 6 / 3
Регистрация: 05.07.2013
Сообщений: 62
1

Как преобразовать число в текст (на подобии =текст() )

06.05.2014, 10:17. Показов 55007. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно какую нибудь функцию VBA, которая бы выполняла то же самое что и =текст() (тесть преобразования чего либо в ячейке в текст)

Попробовал записать макрос используя эту функцию получилось следующее:
Visual Basic
1
 ActiveCell.FormulaR1C1 = "=TEXT(RC[-1],0)"
не совсем то

Чтото на подобии
Visual Basic
1
2
3
4
    
Sub m_1()
Columns("A").NumberFormat = "0.00"
End Sub
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2014, 10:17
Ответы с готовыми решениями:

Преобразовать текст в число
Добрый день! помогите решить проблемку. Есть таблица exel в одной из колонок находятся числовые...

Как в Word VBA преобразовать текст в речь?
Уважаемые VBAпликаторы. Подскажите, как из Word VBA запустить TTS т.е. текст ту спич. 6. ИТОГО ...

Задаётся число в виде текста как а$.Как перевести этот текст в число?
Есть переменная a$=1 , в виде текста , как преобразовать её в цифру 1?

Число как текст в переменной
Есть столбец с кодами клиентов типа "00320" или "01123" или "00025" Есть код: Dim n As String...

10
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
06.05.2014, 10:29 2
Зачем?
Есть ведь фукнции листа, тот же TRIM() например.
Хотя непонятно зачем
0
168 / 6 / 3
Регистрация: 05.07.2013
Сообщений: 62
06.05.2014, 10:31  [ТС] 3
Вроде удлаось использовать ActiveCell.FormulaR1C1 = "=TEXT(RC[-1],0)" как было нужно, но если кто знает функции vba поделитесь
0
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
06.05.2014, 10:33 4
Лучший ответ Сообщение было отмечено voidex как решение

Решение

В VBA есть cstr()
1
168 / 6 / 3
Регистрация: 05.07.2013
Сообщений: 62
06.05.2014, 11:15  [ТС] 5
Кстати как не странно cstr не хочет преобразовывать в текст ,тоесть excel не смещает текст влево и не появляется зеленый треугольничек, говорящий о том, что это число форматированное как тест
Visual Basic
1
2
3
4
 Sub test()
myvalue = Cells(5, 1)
Cells(3, 3) = CStr(myvalue)
End Sub
Добавлено через 14 минут
И еще такой вопрос, можно ли как то задать длину поля в excel, как в access? тоесть например 1 знак или 5 итд..
Просто excel сохраняет по умолчанию 9 как я посмотрел
0
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
06.05.2014, 11:23 6
Лучший ответ Сообщение было отмечено voidex как решение

Решение

cstr() преобразовывает в текст - а эксель преобразовывает назад. Он ведь не дурак - видит что это число.
Тогда перед тем, как писать это "тексточисло" в ячейку - сделайте ей текстовый формат.
Я спрашивал зачем - не ответите?

Visual Basic
1
2
3
4
5
Sub test()
    myvalue = Cells(5, 1)
    Cells(3, 3).NumberFormat = "@"
    Cells(3, 3) = CStr(myvalue)
End Sub
1
168 / 6 / 3
Регистрация: 05.07.2013
Сообщений: 62
06.05.2014, 11:32  [ТС] 7
Из сапа выгружается excel файл, его нужно будет отформатировать макросом и сохранить 2003 офисов в dbf, а после загружать в старую программу которая читает только дбф файлы, поэтому нужно чтобы поля были в текстовом формате, еще не уверен насчет длины полей тк пока что не проверили
Если все получится, то это упростит жизнь многим людям
______________

Спасибо, теперь заработало, гораздо лучше вариант чем FormulaR1C1 = "=TEXT(RC[-1],0)"
0
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
06.05.2014, 11:40 8
В dbf есть текстовые и нетекстовые числовые поля? Я правда не в курсе...
Если сохранять в dbf как есть - получается не то?
Ну если что - задать столбцу текстовый формат, выгрузить в него массив текстовых чисел. Их можно получить или перекладыванием в текстовый массив (текстового типа), или индивидуально преобразовав каждый элемент массива.
0
168 / 6 / 3
Регистрация: 05.07.2013
Сообщений: 62
06.05.2014, 11:41  [ТС] 9
И как я понимаю @ - текстовй формат
а какие еще есть "знаки" для numberforma?

просто исходя из
Integer %
Long &
Single !
Double #
String $
Currency @
не вяжется)
0
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
06.05.2014, 11:48 10
Включите рекордер, позадавайте форматов, выключите. И смотрите код.
1
4 / 4 / 0
Регистрация: 14.04.2012
Сообщений: 11
21.07.2016, 21:20 11
я делаю так: Cells(3, 3).value="'" & Cells(3, 3).value
0
21.07.2016, 21:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2016, 21:20
Помогаю со студенческими работами здесь

Удаление пробелов и число как текст
Добрый день! Задача стоит следующая - имеется диапазон с числовыми данными, типа 15,25. Но...

Как убрать текст и оставить только число
Пожалуйста помогите! У меня в колонке с ячейками находятся данные вида 1520.45 EURO. Как на VBA...

Преобразовать текст в дату
Привет всем ! В файле excel есть дата, записанная как текст, которую необходимо преобразовать в...

Преобразовать текст в нужную кодировку
Всем доброго дня. Что-то затормзил на кодировке. Имеется файл csv Нормально открівается в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru