Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Получение форматированных значений ячеек - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение форматированных значений ячеек (Макросы Sub)
Получение форматированных значений ячеек
Ram3 Дата: Вторник, 25.02.2014, 13:43 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Здравствуйте. Помогите разобраться. Загружаю в 1С из Excel через COM-соединение:
[vba]
Код
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ПутьКФайлу);
ЛистЭксель = Excel.Sheets(НомерЛистаExcel);
Область = ЛистЭксель.Range(ЛистЭксель.Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Cells(ВсегоСтрок,ВсегоКолонок));
Данные = Область.Value.Выгрузить();
[/vba]
При этом Область.Value берет именно ЗНАЧЕНИЯ ячеек, а не форматированные значения, т.е. если в ячейке был артикул 0000056789 (формат дополнительный или какой либо еще), получаю число 56 789. Хочу получать так же, как если бы я делал это с помощью ЛистЭксель.Cells(СчетчикСтрок,СчетчикКолонок).Text, то-есть приведенным к строке 0000056789.
Как это реализовать, может как-то предварительно обработать область. Интересует программное решение, предварительное форматирование файла не предлагать.


Сообщение отредактировал Ram3 - Вторник, 25.02.2014, 13:50
 
Ответить
СообщениеЗдравствуйте. Помогите разобраться. Загружаю в 1С из Excel через COM-соединение:
[vba]
Код
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ПутьКФайлу);
ЛистЭксель = Excel.Sheets(НомерЛистаExcel);
Область = ЛистЭксель.Range(ЛистЭксель.Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Cells(ВсегоСтрок,ВсегоКолонок));
Данные = Область.Value.Выгрузить();
[/vba]
При этом Область.Value берет именно ЗНАЧЕНИЯ ячеек, а не форматированные значения, т.е. если в ячейке был артикул 0000056789 (формат дополнительный или какой либо еще), получаю число 56 789. Хочу получать так же, как если бы я делал это с помощью ЛистЭксель.Cells(СчетчикСтрок,СчетчикКолонок).Text, то-есть приведенным к строке 0000056789.
Как это реализовать, может как-то предварительно обработать область. Интересует программное решение, предварительное форматирование файла не предлагать.

Автор - Ram3
Дата добавления - 25.02.2014 в 13:43
Ram3 Дата: Вторник, 25.02.2014, 15:08 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Область.Cells(i, j).Text знаю и пользуюсь, но я хочу получить сразу область ячеек и передать ее в 1С, а не перебирать каждую. Так во много раз быстрее.

метод Выгрузить() выгружает полученную область ячеек в массив, тут проблем нет. Но уже в Область.Value я получаю ЗНАЧЕНИЯ а не форматированные значения, как вижу в эксель, а хочу именно форматированные значения, как через Область.Cells(i, j).Text

[vba]
Код
''' av = Область.Text       ' такого не бывает
[/vba]
 
Ответить
СообщениеОбласть.Cells(i, j).Text знаю и пользуюсь, но я хочу получить сразу область ячеек и передать ее в 1С, а не перебирать каждую. Так во много раз быстрее.

метод Выгрузить() выгружает полученную область ячеек в массив, тут проблем нет. Но уже в Область.Value я получаю ЗНАЧЕНИЯ а не форматированные значения, как вижу в эксель, а хочу именно форматированные значения, как через Область.Cells(i, j).Text

[vba]
Код
''' av = Область.Text       ' такого не бывает
[/vba]

Автор - Ram3
Дата добавления - 25.02.2014 в 15:08
Ram3 Дата: Вторник, 25.02.2014, 15:35 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Немного конкретизирую:
Так я могу получить форматированные значения ячейки, т.е. то, что вижу в Эксель: Область.Cells(i, j).Text.
Так я могу получить область ячеек, но со ЗНАЧЕНИЯМИ без форматирования: Область.Value.
Я же хочу получить сразу область, но с форматированными значениями.
Вопрос: Как?

[moder]ты не конкретизируешь.
ты пишешь одно и то же третий раз.[/moder]
 
Ответить
СообщениеНемного конкретизирую:
Так я могу получить форматированные значения ячейки, т.е. то, что вижу в Эксель: Область.Cells(i, j).Text.
Так я могу получить область ячеек, но со ЗНАЧЕНИЯМИ без форматирования: Область.Value.
Я же хочу получить сразу область, но с форматированными значениями.
Вопрос: Как?

[moder]ты не конкретизируешь.
ты пишешь одно и то же третий раз.[/moder]

Автор - Ram3
Дата добавления - 25.02.2014 в 15:35
Ram3 Дата: Четверг, 27.02.2014, 09:34 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Модератор, если нечего сказать по существу, и если я не нарушаю правила форума - не суйся, тебе совсем не обязательно что-то писать, может кто-то из людей поможет

[admin]Никто не поможет, пока Вы не прочитаете правила. Тема закрыта, Вам замечание: Нарушение правил пп. 3[/admin]
 
Ответить
СообщениеМодератор, если нечего сказать по существу, и если я не нарушаю правила форума - не суйся, тебе совсем не обязательно что-то писать, может кто-то из людей поможет

[admin]Никто не поможет, пока Вы не прочитаете правила. Тема закрыта, Вам замечание: Нарушение правил пп. 3[/admin]

Автор - Ram3
Дата добавления - 27.02.2014 в 09:34
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение форматированных значений ячеек (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!