Выгрузка в Excel Плохой тип переменной

Новая тема
Показывать по сообщений
"Процедура VExcel()<br> Exc=СоздатьОбъект("Excel.Application");<br> ИмяФайла=("C:\temp.xls");<br> <br> НовыеРабочиеКниги=Exc.Workbooks;<br> РабочаяКнига=НовыеРабочиеКниги.Open(ИмяФайла);<br> КолРек=МФКатЦены.РазмерСписка();<br> Для Ном=1 по КолРек Цикл<br> Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном); <br> КонецЦикла<br> <br> КонецПроцедуры<br><br>В результате сообщение<br>Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном); <br>{Обработка.ПечатьПрайсЛиста.Форма.Модуль(44)}: Плохой тип переменной<br><br>Вопрос: что не так?"
"> Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном); <br><br>Попробуйте например сделать так:<br>Exc.Cells(1, Ном).Value=1;<br>Вылезет ошибка? Нет - Хорошо<br>Но вообще-то Cells - это метод листа Excelевской книги, а если смотреть на вашу процедуру, то вы пытаетесь в приложении Excel найти ячейку<br><br>В 1С 8 можно найти такой пример:<br>Excel = Новый COMОбъект("Excel.Application");<br>Excel.WorkBooks.Open(ИмяФайла);<br>Состояние("Обработка файла Microsoft Excel...");<br>ExcelЛист = Excel.Sheets(НомерЛистаExcel);<br>ExcelЛист.Cells(Row,Column).Value = 1;<br>"
"Не, ячейку мне находить не нужно<br>мне нужно выгрузить значения элементов списка в excel<br>если например делаю так:<br>Exc.Cells(1, Ном).Value=Ном;<br>Учитывая если размер списка равен - 4<br>то в excel вылазит в ячейку А1-"1", А2-"2" и тд до четырех<br>А вот вернуть значение списка согласно номеру как я это делаю ( МФКатЦены.ПолучитьЗначение(Ном))<br>не получается<br><br>"
"Тогда другой вопрос, а в качестве элементов списка у вас какой тип используется?<br>ПолучитьЗначение(<?>,)<br>Синтаксис:<br>ПолучитьЗначение(<Позиция>,<Строка>)<br>Назначение:<br>Получить значение из указанной позиции списка.<br>Возвращает значение из списка.<br>Параметры:<br><Позиция> - номер позиции в списке, из которой возвращается значение (изменяется от 1 до РазмерСписка);<br><Строка> - идентификатор переменной, в которой возвращается символьное представление получаемого значения.<br><br>В Excel вы скорее всего можете передать строку или число, а у вас какой тип возвращается МФКатЦены.ПолучитьЗначение(Ном)(что в списке МФКатЦены)?"
"Дык Cells - не принадлежит классу Application, а принадлежит классу WorkSheet или Range<br>Надо примерно так:<br>Exc.ActiveSheet.Cells(1, Ном).Value="чего нибудь"<br><br>а еще лучше вообще сформировать ссылку на конкретный лист рабочей книги а потом именно в него слать значения, а то если алгоритм будет работать долго и пользователь параллельно сменит ActiveSheet, произойдет выдача значений уже в другой активный лист, короче, (пишу без теста и проверок), я бы делал так:<br>Exc=СоздатьОбъект("Excel.Application");<br>РабочаяКнига=Exc.Workbooks.Open(ИмяФайла);<br>ЛистКниги=РабочаяКнига.Sheets("Лист 1");<br>ЛистКниги.Cells(1, 1).Value="чего нибудь";"
вобщем начинаю рассказывать с самого начала<br>нужно справочник прайс лист выгрузить в ексель<br>для начала сделать шапку<br><br>у товара есть 4 категории цены<br>Закупочная, оптовая, мелкооптовая, розничная<br>эти категории можно выбирать из списка (МФКатЦен)<br>и выбраные категории нужно перенести в ексель<br>если например выбрать цены оптовая и розничная<br>должно получиться следующее<br>  ______A___________B_____________C_______________D________<br­>1| Наименование |  Артикул | Цена оптовая | Цена Розничная |
RE:  Дык Cells - не принадлежит классу Application, а принадлежит классу WorkSheet или Range<br>     Надо примерно так:<br>     Exc.ActiveSheet.Cells(1, Ном).Value="чего нибудь"<br>вот если туда написать "его нибудь" то это "чего нибудь" вылазит, причем вылазит правильно<br>если в списке выбрано два значения то и в ексель вылазит в А1-чего нибудь, B1-чего нибудь<br>а мне нужно чтобы вылазило значение списка МФКатЦены согласно его номеру в списке <br>
"Если задача этим ограничивается, сделайте проще. Сформируйте печатную форму обычным сопособом, то есть прямо в 1С, а потом дайте команду:<br>Таб.Записать(ИмяФайла, 1);<br><br>Записать(<?>,);<br>Синтаксис:<br>Записать(<ИмяФайла>,<ТипФайла>)<br>Назначение:<br>Записать таблицу в файл.<br>Параметры:<br><ИмяФайла> - имя файла.<br><ТипФайла> - необязательный параметр. Числовое или строковое выражение, определяющее тип файла:<br>· отсутствует, 0 или ''MXL'' - формат 1C;<br>· 1 или ''XLS'' - формат Ms Excel;<br>· 2 или ''HTM'' или ''HTML'' - формат HTML;<br>· 3 или ''TXT'' - формат TXT.<br>Замечание:<br>Метод может использоваться при работе с таблицей в режиме ввода данных.<br><br><br>P.S. Если хочется все таки в Excel через OLE, напишите, завтра отвечу"
Я пока так и сохраняю, только через Файл-сохранить как..<br>но в справочнике прайс лист около 10000 наименований и поэтому сохраняется он очень долго
"Посмотрите через отладчик какой тип возвращает<br>МФКатЦены.ПолучитьЗначение(Ном)<br>или можно еще так написать<br>Сообщить(ТипЗначенияСтр(МФКатЦены.ПолучитьЗначение(Ном)));<br><br>Тип должен быть либо строка, либо число<br>Если что-то другое, то нужно преобразовывать, тем болееесли это тип "Справочник" или "Документ""

Читают тему

(гостей: 1)

Быстрый переход