На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS

Дорогие друзья! Поздравляем вас с Новым 2018 годом!

Всем удачи, успеха и благополучия!
В новом году ожидаем новых рекордов при подсчёте количества ёлочек на экране ;)


msm.ru
! Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки

1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость - сестра таланта.
3. Не забывайте использовать теги [сode=vba] ...текст программы... [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Модераторы: Old Bat, MIF
  
> Excel, получить не форматированные данные.
Коллеги, через какое свойство можно вынуть неформатированные данные.
Например ячейка имеет тип "денежный" и имеет значение 10 000,00 р , при щелчке на нее эксель показывает только 10000.

Так вот, как мне получить только 10000?
По Excel.Cells(сч, 10).Text получаю 10 000,00 р
"Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
Range.Value
Цитата ^D^ima @
По Excel.Cells(сч, 10).Text получаю 10 000,00 р

Представление или значение?
Цель - ничто , процесс - все.
Цитата leo @
Range.Value

да, вернулось число такого вида:
Цитата
3 470

Только что за символ после цифры 3? Он имеет код 160...

Когда я в экселе щелкаю на ячейку, в строке формул 3470 без всяких спецсимволов.

Как-бы программно без этого символа вернуть?


Цитата Bas @
Представление или значение?

Я не понимаю :)

Сам код такой:
ExpandedWrap disabled
    Excel = Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(ИмяФайла);
    Excel.Sheets(1).Select();
    ЭксельСуммаНал = Excel.Cells(сч, 9).Value;

Это 1С, но разницы для работы с COM нет.

Добавлено
Решение в лоб - удалять эти символы в строке после получения данных, но возможно есть и другое решение
"Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
Цитата ^D^ima @
Только что за символ после цифры 3? Он имеет код 160...

Какой еще символ? У тебя ЭксельСуммаНал какой тип имеет?
Попробуй использовать числовой тип (вещественный или целый), а затем уже сам преобразуешь его в строку, как нужно

Добавлено
Еще можно попробовать с Range.Value2, которое (судя по описанию) преобразует денежный формат и время к типу double.
Цитата leo @
Какой еще символ?

Это символ неразрывного пробела оказывается

http://excel2.ru/articles/preobrazovanie-t...obel-v-ms-excel

https://www.google.ru/search?ei=fQdXWs71Ns-.....0.bD4YWXq_jPo

Добавлено
Цитата leo @
Range.Value2

то-же самое


Цитата leo @
У тебя ЭксельСуммаНал какой тип имеет?

в 1С не задается, подставляется сам
"Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
Поясни, что тебе нужно - просто получить строку в нужном тебе формате, или же как-то дальше использовать полученные значения для вычислений?
Дело в том, что Value возвращает Variant с типом данных Currency. Если ты используешь преобразование в строку по умолчанию, то 1C вставляет свой разделитель тысяч (символ 160). Поэтому для преобразования в строку без разделителя нужно либо использовать какое-то специальное форматирование, либо присвоить значение Variant переменной числового типа (double) и уже ее преобразовать в строку (если 1С и тут не влепит разделитель).
Для вычислений же можно использовать непосредственно тип Variant или Currency, т.к. 1С наверняка должна поддерживать эти операции.

Добавлено
Цитата ^D^ima @
в 1С не задается, подставляется сам

Вон оно что... В таком случае должен подставляться числовой тип. И соотв-но, проблема тут ни в экселе, а в преобразовании числа в строку в 1С. Если в ней нет функций задания формата преобразования, то остается только анализировать строку и удалять пробелы ручками (или забить на это дело)
Сообщение отредактировано: leo -
leo
Спасибо за развернутый ответ.
"Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,1118 ]   [ 20 queries used ]   [ Generated: 21.01.18, 12:43 GMT ]