Имя: Пароль:
1C
1C 7.7
v7: Проблема при формировании данных второго листа в Excel
0 tgu82
 
15.11.13
15:34
Лист.Range(Лист.Cells(2,1),Лист.Cells(4,1)).Select();
Microsoft Office Excel: Метод Select из класса Range завершен неверно

В первом листе книги все работает прекрасно, а при переходе на второй лист - дает такую ошибку. данные заполняет без проблем, а вот объединение ячеек на втором листе почему-то делать не хочет
1 Chum
 
15.11.13
15:38
зачем тебе селект, если мегри делается для рендж?
2 tgu82
 
15.11.13
15:41
(1) ну делал как в инете нашел. но ведь на первом листе все работает нормально же
3 tgu82
 
15.11.13
15:42
(1)
Лист.Cells(1,1).Value="№ п/п";  
Лист.Cells(1,1).Font.Size=7;      
Лист.Range(Лист.Cells(1,1),Лист.Cells(4,1)).Select();
Excel.Selection.Merge();

Вот так у меня
4 dk
 
15.11.13
15:53
с переменной лист не напутал во втором листе?
может ты в качестве ренджа для листа 2 указываешь ячейки с первого листа?
5 tgu82
 
15.11.13
16:03
(4)
Вот у меня тоже такое ощущение, но
   Лист="";
   Лист = Книга.WorkSheets(2);
   то есть 2-ой лист я установил чтобы с ним работать

   Лист.Cells(2,1).Value="№ п/п";  
   Вот так работает и значение присваивает

   Лист.Cells(2,1).Font.Size=7;      
   Лист.Range(Лист.Cells(2,1),Лист.Cells(4,1)).Select();  
   Excel.Selection.Merge();

   а вот эта конструкция на 2-м листе не работе
6 dk
 
15.11.13
16:04
а Excel 1 открыт или 2?
7 mikecool
 
15.11.13
16:05
(5) так просто, в дополнение - сначала выводи данные в лист, а уже потом массово присваивай оформление областям - работает на порядок быстрее
8 dk
 
15.11.13
16:07
короче можно попробовать вместо Excel.Selection.Merge();
Лист.Application.Selection.Merge();
9 tgu82
 
15.11.13
16:10
(6) Книга открыта одна
10 tgu82
 
15.11.13
16:11
(8) Ошибка раньше появляется именно на range.select()
11 tgu82
 
16.11.13
12:45
В диспетчере задач даже если книга закрывает программно, все равно эксель почему-то висит в процессах. Я через паузу процесс убиваю и тем не менее все равно на втором листе она объединять ячейки принципиально не хочет
12 tgu82
 
16.11.13
12:47
ей кажется что это как бы продолжается первый лист видимо. Хотя перед работой со вторым листом я книгу сохраняю и опять открываю
13 tgu82
 
16.11.13
13:12
Похоже, что победил!!!

   Лист = Книга.WorkSheets(2);
   Лист.Activate();  

Вот так все работает. То есть первый лист как бы не надо активировать (причем не важно первый он или третий, важно что работаешь с ним сначала). А вот для работы с вторым листом (в смысле объединений и прочего) требуется не просто указать что работаешь с другим листом но и обязательно его активировать!!!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс