Имя: Пароль:
1C
1С v8
1c и excel, метод PasteSpecial
0 yurec_k
 
24.09.12
16:24
из 1с нужно сделать специальную вставку
при записи макроса код такой
"
Excel.Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
"
Как эту строку написать в 1с?
1 yurec_k
 
24.09.12
16:29
что то типа:
"
Excel.Selection.PasteSpecial("xlPasteColumnWidths", "xlNone", 0, 0);
"

но так не работает
2 КонецЕсли
 
24.09.12
16:41
PasteSpecial(8)
3 yurec_k
 
24.09.12
18:04
(2) вставляет все что угодно только не ширину колонок
4 yurec_k
 
24.09.12
18:20
как скопировать вставить ширину колонок?
код
"
Excel.Selection.PasteSpecial(8,-4142, 0, 0);
"
отрабатывает аналогично
"
Excel.Selection.Paste();
"
5 КонецЕсли
 
25.09.12
08:28
Незнаю какой у тебя excel, но такой код:

Лист1 = Книга.WorkSheets(1);
Лист1.Range("A1:Z100").Copy();    
Лист = Книга.Sheets.Add();
Лист.Range("A1:Z100").PasteSpecial(8);

у меня вставляет на новый лист только ширину колонок.
6 yurec_k
 
25.09.12
13:55
ексель 2010
почему ширину колонок не передает так и не понял
код
"
Excel1.Selection.PasteSpecial(-4104,-4142,0,0);
"
вставляет скопирванное как картинку, при открытии такого файла все тормозит.

решил след образом:
добавил все что нужно в макрос в файл-эксель-источник и запустил
"
   Excel2 = Новый COMObject("Excel.Application");
   Excel2.Displayalerts = 0;
   Файл2 = Excel2.Workbooks.Open(ФайлДен+".xlsx");
   Excel2.Sheets(1).Select();
   Файл2.VBProject.VBComponents.Add(1);
   Файл2.VBProject.VBComponents("Module1").CodeModule.InsertLines(1, "Sub Макрос()");
   Файл2.VBProject.VBComponents("Module1").CodeModule.InsertLines(2, "Cells.Select");
..........................
......................
   Файл2.VBProject.VBComponents("Module1").CodeModule.InsertLines(15, "ActiveWorkbook.Save");
   Файл2.VBProject.VBComponents("Module1").CodeModule.InsertLines(16, "ActiveWindow.Close");
   Файл2.VBProject.VBComponents("Module1").CodeModule.InsertLines(17, "End Sub");
   Excel2.Run("Макрос");
"
2 + 2 = 3.9999999999999999999999999999999...