Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > VB for Application > Excel, получить не форматированные данные. |
Автор: ^D^ima 10.01.18, 15:16 |
Коллеги, через какое свойство можно вынуть неформатированные данные. Например ячейка имеет тип "денежный" и имеет значение 10 000,00 р , при щелчке на нее эксель показывает только 10000. Так вот, как мне получить только 10000? По Excel.Cells(сч, 10).Text получаю 10 000,00 р |
Автор: leo 10.01.18, 16:06 |
Range.Value |
Автор: Bas 10.01.18, 21:42 |
Представление или значение? |
Автор: ^D^ima 11.01.18, 06:37 |
да, вернулось число такого вида: Цитата 3 470 Только что за символ после цифры 3? Он имеет код 160... Когда я в экселе щелкаю на ячейку, в строке формул 3470 без всяких спецсимволов. Как-бы программно без этого символа вернуть? Я не понимаю Сам код такой: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); Excel.Sheets(1).Select(); ЭксельСуммаНал = Excel.Cells(сч, 9).Value; Это 1С, но разницы для работы с COM нет. Добавлено Решение в лоб - удалять эти символы в строке после получения данных, но возможно есть и другое решение |
Автор: leo 11.01.18, 07:33 |
Какой еще символ? У тебя ЭксельСуммаНал какой тип имеет? Попробуй использовать числовой тип (вещественный или целый), а затем уже сам преобразуешь его в строку, как нужно Добавлено Еще можно попробовать с Range.Value2, которое (судя по описанию) преобразует денежный формат и время к типу double. |
Автор: ^D^ima 11.01.18, 08:11 |
Это символ неразрывного пробела оказывается http://excel2.ru/articles/preobrazovanie-t...obel-v-ms-excel https://www.google.ru/search?ei=fQdXWs71Ns-.....0.bD4YWXq_jPo Добавлено то-же самое в 1С не задается, подставляется сам |
Автор: leo 11.01.18, 08:24 |
Поясни, что тебе нужно - просто получить строку в нужном тебе формате, или же как-то дальше использовать полученные значения для вычислений? Дело в том, что Value возвращает Variant с типом данных Currency. Если ты используешь преобразование в строку по умолчанию, то 1C вставляет свой разделитель тысяч (символ 160). Поэтому для преобразования в строку без разделителя нужно либо использовать какое-то специальное форматирование, либо присвоить значение Variant переменной числового типа (double) и уже ее преобразовать в строку (если 1С и тут не влепит разделитель). Для вычислений же можно использовать непосредственно тип Variant или Currency, т.к. 1С наверняка должна поддерживать эти операции. Добавлено Вон оно что... В таком случае должен подставляться числовой тип. И соотв-но, проблема тут ни в экселе, а в преобразовании числа в строку в 1С. Если в ней нет функций задания формата преобразования, то остается только анализировать строку и удалять пробелы ручками (или забить на это дело) |
Автор: ^D^ima 11.01.18, 08:49 |
leo Спасибо за развернутый ответ. |