![]() |
![]() |
![]() |
|
Динамическое формирование строк в Excel макете | ☑ | ||
---|---|---|---|---|
0
Andrey07070707
31.05.10
✎
13:21
|
Добрый день, знаю что уже много ссылок, и тема в принципе разжевана, но тем не менее не нашел, или просто не смог применить все что прочитал. В общем ситуация стандартная. есть макет(нарисованный в excel-e лист). необходимо заполнить данными.
Сначала Шапка тут все понятно сделал через Страница.Cells(1,12).Value = Строка(Шапка.ProductLine); ... ... Но далее необходимо в цикле формировать и заполнять данные по товарам. по идее необходимо копировать и вставлять строку, после чего ее заполнять, но я не нашел как это делается... может кто подскажет? Нашел такой текст: КомОбъект.Tables(1).Rows.Add(); Но это все для word-a как я понимаю... |
|||
1
mikecool
31.05.10
✎
13:24
|
запускаешь запись макроса
выполняешь эти действия в экселе пишешь на языке 1с полученный код вба |
|||
2
Andrey07070707
31.05.10
✎
13:26
|
Спасибо, направление понял. А есть пример?
|
|||
3
Andrey07070707
31.05.10
✎
16:00
|
В общем Макрос получился примерно такой:
Rows("10:10").Select Selection.Copy Rows("11:11").Select ActiveSheet.Paste Только В 1С -е такого создать не могу. select как метод не отрабатывает... подскажите плиз... |
|||
4
Andrey07070707
01.06.10
✎
11:49
|
Еще раз добрый день, так и не получилось выделить и вставить строку. Ощущаю себя дауном и ничтожным человеком... помогите Пожалуйста.
|
|||
5
Andrey07070707
03.06.10
✎
11:23
|
Опять подниму с вопросом. Сейчас EXCEL выкидывакт в ошибку "Ошибка при вызове метода контекста (Select). Произошла исключительная ситуащия...Метод Select из класса Range завершен неверно"
Код: Перем КомОбъект Экспорт; Функция ПечатьМак(Тип) АктивныйДокумент = ПолучитьМакет("Макет"); КомОбъект = АктивныйДокумент.Получить(); ... Страница=КомОбъект.Worksheets(1); Страница.Cells(1,12).Value = Строка(Шапка.ProductLine); Страница.Cells(4,7).Value = Строка(Шапка.Supplier); Страница.Cells(5,7).Value = Строка(ПредставлениеПоставщика.ЮридическийАдрес); Страница.Cells(1,21).Value = Строка(Шапка.QuotationNumber); Страница.Cells(4,18).Value = Строка(Шапка.Номер); ... Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл Страница.Range("10:10").Select(); Страница.Selection.Сopy(); Страница.Range("11:11").Select(); Страница.ActiveSheet.Paste(); ... Расскажите пожалуйста почему Select() не работает? |
|||
6
Всеяд
03.06.10
✎
11:26
|
А зачем вообще тебе копипаст тут?
|
|||
7
Andrey07070707
03.06.10
✎
11:32
|
У меня макет с таким форматированием что проще скопировать строку где должна быть табличная часть с номенклатурой.Ну и чтобы не затирался конец файла.
|
|||
8
Andrey07070707
03.06.10
✎
11:36
|
пПо другому не соображу как сделать... да уж если скопировать не могу это как-то удручает. (
|
|||
9
Всеяд
03.06.10
✎
11:59
|
Эксель = Новый ComОбъект("Excel.Application");
Эксель.Visible = Истина; ДокументЭксель = Эксель.Workbooks.Open("D:\TestBook.xls"); ЛистЭксель = ДокументЭксель.ActiveSheet; ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Номенклатура"); ТЗ.Колонки.Добавить("Количество"); ТЗ.Колонки.Добавить("Цена"); ТЗ.Колонки.Добавить("Сумма"); СтрокаТЗ = ТЗ.Добавить(); СтрокаТЗ.Номенклатура = "Товар А"; СтрокаТЗ.Количество = 10; СтрокаТЗ.Цена = 2; СтрокаТЗ.Сумма = 20; СтрокаТЗ = ТЗ.Добавить(); СтрокаТЗ.Номенклатура = "Товар Б"; СтрокаТЗ.Количество = 5; СтрокаТЗ.Цена = 10; СтрокаТЗ.Сумма = 50; // в строке 2 - шаблон оформления (его тоже заполняем данными) ОбластьШаблона = ЛистЭксель.Range(ЛистЭксель.Cells(2, 2), ЛистЭксель.Cells(2, 5)); ТекСтрока = 2; Для Каждого СтрокаТЗ Из ТЗ Цикл ОбластьШаблона.Copy(ЛистЭксель.Range(ЛистЭксель.Cells(ТекСтрока, 2), ЛистЭксель.Cells(ТекСтрока, 5))); ЛистЭксель.Cells(ТекСтрока, 2).Value = СтрокаТЗ.Номенклатура; ЛистЭксель.Cells(ТекСтрока, 3).Value = СтрокаТЗ.Количество; ЛистЭксель.Cells(ТекСтрока, 4).Value = СтрокаТЗ.Цена; ЛистЭксель.Cells(ТекСтрока, 5).Value = СтрокаТЗ.Сумма; ТекСтрока = ТекСтрока + 1; КонецЦикла; |
|||
10
Andrey07070707
03.06.10
✎
12:11
|
Большое Спасибо!!! Сейчас буду пробывать...)))
|
|||
11
irq15
09.06.10
✎
13:16
|
в чем косяк, выпадает ошибка: Ошибка при установке значения атрибута контекста (Value): Произошла исключительная ситуация (0x800a03ec)
Страница.Cells.Item(7, 2).Value = тек.Товар; ОбластьШаблона = Страница.Range(Страница.Cells(7, 1), Страница.Cells(7, 9)); ТекСтрока = 7; НомерПП = 1; Для каждого тек из Таблица Цикл ОбластьШаблона.Copy(Страница.Range(Страница.Cells(ТекСтрока, 1), Страница.Cells(ТекСтрока, 9))); Страница.Cells.Item(7, 1).Value = НомерПП; НомерПП = НомерПП + 1; Страница.Cells.Item(7, 2).Value = тек.Товар; Страница.Cells.Item(7, 3).Value = тек.ЕдИзм; Страница.Cells.Item(7, 4).Value = тек.Количество; Страница.Cells.Item(7, 5).Value = тек.Цена; Страница.Cells.Item(7, 6).Value = тек.СуммаБН; Страница.Cells.Item(7, 7).Value = тек.СтНДС; Страница.Cells.Item(7, 8).Value = тек.НДС; Страница.Cells.Item(7, 9).Value = тек.Сумма; ТекСтрока = ТекСтрока + 1; КонецЦикла; |
|||
12
irq15
09.06.10
✎
13:17
|
Страница.Cells.Item(7, 2).Value = тек.Товар; - это к тексту ошибки
|
|||
13
irq15
09.06.10
✎
13:28
|
нашел косяк,надо тек.Товар.наименование
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |