|
Программное копирование листа между книгами Excel. | ☑ | ||
|---|---|---|---|---|
|
0
bvb
02.12.14
✎
11:20
|
Погуглил. Тема не новая. Но просмотрев темы, не увидел, что проблема решена.
Вообще исходная задача такова : В Макете печатной формы как Active Document хранится файл- шаблон Excel с двумя листами. Нужно по каждой строке ТЧ сформировать новый файл и заполнить его (оба листа) Задачу, как я вижу можно решать тремя способами : 1. Получать шаблон Excel по каждой строке ТЧ затем сохраняя его КнигаШаблонExcel = ПолучитьМакет("МойДокумент_Excel").Получить(); Заполнение …. КнигаШаблонExcel.SaveAs(ПолноеИмяФайла); файлы создаются но почему то пустые 2. Скопировать лист из шаблона в книгу ExcelApplication = Новый COMОбъект("Excel.Application"); КнигаПриемникExcel = ExcelApplication.Workbooks.Add(1); ЛистШаблона = КнигаШаблонExcel.Sheets(1); ЛистШаблона.Copy(КнигаПриемникExcel.Sheets(1)); // копируем лист шаблона с указанием приемника ExcelApplication.ActiveWorkbook.SaveAs(ПолноеИмяФайла); ExcelApplication.Quit(); Произошла исключительная ситуация (Microsoft Excel): Метод Copy из класса Worksheet завершен неверно 3. Скопировать именнованную область из шаблона в книгу ExcelApplication = Новый COMОбъект("Excel.Application"); КнигаПриемникExcel = ExcelApplication.Workbooks.Add(1); ЛистШаблона = КнигаШаблонExcel.Sheets(1); ЛистШаблона.Range("Справка_А").Copy(КнигаПриемникExcel.Sheets(1).Range("A1:D38")); // копируем именнованную область из шаблона ExcelApplication.ActiveWorkbook.SaveAs(ПолноеИмяФайла); ExcelApplication.Quit(); Произошла исключительная ситуация (Microsoft Excel): Метод Copy из класса Range завершен неверно Ни один способ не работает. Как быть ? Очень надо. |
|||
|
1
bvb
02.12.14
✎
15:09
|
апну пожалуй
|
|||
|
2
palpetrovich
02.12.14
✎
15:12
|
как-то это режет глаз:
ЛистШаблона = КнигаШаблонExcel.Sheets(1); ЛистШаблона.Copy(КнигаПриемникExcel.Sheets(1)); |
|||
|
3
BAPBAP
02.12.14
✎
15:27
|
Вроде, как-то так должно быть
КнигаШаблонExcel.Sheets(1).Copy(); КнигаПриемникExcel.Sheets(1).Paste(); |
|||
|
4
palpetrovich
02.12.14
✎
15:29
|
+(2) так работает, правда не совсем то что нужно автору :)
ExcelApplication = Новый COMОбъект("Excel.Application"); Док = ExcelApplication.Workbooks.Open("D:\1с82\1.xls"); ЛистШаблона = Док.Sheets(1); КнигаПриемникExcel = ExcelApplication.Workbooks.Add(1); ЛистШаблона.Copy(КнигаПриемникExcel.Sheets(1)); ExcelApplication.ActiveWorkbook.SaveAs("D:\1с82\2.xls"); ExcelApplication.Quit(); |
| Форум | Правила | Описание | Секции | Поиск |