Здравствуйте. Помогите разобраться. Загружаю в 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. Как это реализовать, может как-то предварительно обработать область. Интересует программное решение, предварительное форматирование файла не предлагать.
Здравствуйте. Помогите разобраться. Загружаю в 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
Сообщение отредактировал Ram3 - Вторник, 25.02.2014, 13:50
Область.Cells(i, j).Text знаю и пользуюсь, но я хочу получить сразу область ячеек и передать ее в 1С, а не перебирать каждую. Так во много раз быстрее.
метод Выгрузить() выгружает полученную область ячеек в массив, тут проблем нет. Но уже в Область.Value я получаю ЗНАЧЕНИЯ а не форматированные значения, как вижу в эксель, а хочу именно форматированные значения, как через Область.Cells(i, j).Text
[vba]
Код
''' av = Область.Text ' такого не бывает
[/vba]
Область.Cells(i, j).Text знаю и пользуюсь, но я хочу получить сразу область ячеек и передать ее в 1С, а не перебирать каждую. Так во много раз быстрее.
метод Выгрузить() выгружает полученную область ячеек в массив, тут проблем нет. Но уже в Область.Value я получаю ЗНАЧЕНИЯ а не форматированные значения, как вижу в эксель, а хочу именно форматированные значения, как через Область.Cells(i, j).Text
Немного конкретизирую: Так я могу получить форматированные значения ячейки, т.е. то, что вижу в Эксель: Область.Cells(i, j).Text. Так я могу получить область ячеек, но со ЗНАЧЕНИЯМИ без форматирования: Область.Value. Я же хочу получить сразу область, но с форматированными значениями. Вопрос: Как?
[moder]ты не конкретизируешь. ты пишешь одно и то же третий раз.[/moder]
Немного конкретизирую: Так я могу получить форматированные значения ячейки, т.е. то, что вижу в Эксель: Область.Cells(i, j).Text. Так я могу получить область ячеек, но со ЗНАЧЕНИЯМИ без форматирования: Область.Value. Я же хочу получить сразу область, но с форматированными значениями. Вопрос: Как?
[moder]ты не конкретизируешь. ты пишешь одно и то же третий раз.[/moder]Ram3
Модератор, если нечего сказать по существу, и если я не нарушаю правила форума - не суйся, тебе совсем не обязательно что-то писать, может кто-то из людей поможет
[admin]Никто не поможет, пока Вы не прочитаете правила. Тема закрыта, Вам замечание: Нарушение правил пп. 3[/admin]
Модератор, если нечего сказать по существу, и если я не нарушаю правила форума - не суйся, тебе совсем не обязательно что-то писать, может кто-то из людей поможет
[admin]Никто не поможет, пока Вы не прочитаете правила. Тема закрыта, Вам замечание: Нарушение правил пп. 3[/admin]Ram3