![]() |
![]() |
![]() |
|
как в экселе добавить лист в конец книги? | ☑ | ||
---|---|---|---|---|
0
vS
13.10.10
✎
12:55
|
в VBA это Sheets.Add After:=ActiveSheet
а в 1С такая запись не прокатывает... только со скобками, типа РабочаяКнига.Sheets.Add() но так добавляется лист в начало, а мне нужно в конец.... |
|||
1
ДенисЧ
13.10.10
✎
12:57
|
РабочаяКнига.Sheets.Add(,ActiveShhet)
|
|||
2
vS
13.10.10
✎
13:02
|
ахха... только нету в 1С ActiveSheet
|
|||
3
vS
13.10.10
✎
13:02
|
можно высказывать практические а не теоретические выкладки? :)
|
|||
4
Fatum1980
13.10.10
✎
13:10
|
РабочаяКнига.Sheets.Add(,РабочаяКнига.ActiveShhet)
может быть так есть? :) а вообще попробовать поискать инфу сложно: http://citforum.ru/programming/windows/excel_faq/ http://www.firststeps.ru/vba/excel/vbaexcel1.html когда заморачивался с загрузкой выгрузкой эксель мне этих ссылок хватило. |
|||
5
vS
13.10.10
✎
13:15
|
(4) в VBA все работает :) нужно из 1С выполнять... пока не соображу...
|
|||
6
vS
13.10.10
✎
13:19
|
может у кого-то все же живой коТ есть? :)
|
|||
7
smaharbA
13.10.10
✎
13:22
|
есть три варианта, Вам какой ?
|
|||
8
vS
13.10.10
✎
13:27
|
(7) рабочий
|
|||
9
vS
13.10.10
✎
13:29
|
нагуглил кучу копипастеных Add ПЕРЕД текущим листом... и немного вопросов как вставить ПОСЛЕ, но без ответов :)
|
|||
10
vS
13.10.10
✎
13:43
|
(7) ты где? или рабочих вариантов нет?
|
|||
11
vS
13.10.10
✎
13:57
|
ку ку :)
где коллективный разум? :) |
|||
12
Denp
13.10.10
✎
14:00
|
старый баян.
без изврата с выполнением скриптов вба - никак надо добавлять перед последним листом и перемещать его в конец. |
|||
13
vS
13.10.10
✎
14:41
|
перемещать там тоже только ActiveSheet.Move After:=Sheets(6)
примерно такая схема, в 1Ц не прокатит |
|||
14
Denp
13.10.10
✎
14:46
|
(13) ща пороюсь в старом коде
|
|||
15
План счетов
13.10.10
✎
14:47
|
Дак сделай макрос в экселе который будет создавать новую страницу и помещать её в конец. И запускай этот макрос из 1С.
|
|||
16
План счетов
13.10.10
✎
14:50
|
Можно на лету (из 1С) добавлять макросы в эксель.
|
|||
17
Denp
13.10.10
✎
14:54
|
(13) Е=СоздатьОбъект("Excel.Application");
Е.Workbooks.Open("...",0,0,5,Строка("...")); Е.Sheets(Е.Sheets.Count).Select(); Е.Sheets.Add(); Е.Sheets(Е.Sheets.Count).Move(Е.Sheets(Е.Sheets.Count-1)); |
|||
18
Denp
13.10.10
✎
14:55
|
+(17) то бишь перемещаем последний лист на предпоследнее место
|
|||
19
Fatum1980
13.10.10
✎
14:55
|
(13) давно бы уже разобрался и сделал. держи добавление в конец:
обЭксел = Новый ComОбъект("excel.application"); НашФайл = обЭксел.Workbooks.Open(СокрЛП(Путь)); //Открываем файл НашФайл.Sheets(3).Select(); //выбираем третий лист (у меня он был последним) как выбрать самый последний лист через каунт найдешь. НовыйЛист = НашФайл.Sheets.Add(,НашФайл.ActiveSheet); НашФайл.Save(); ОбЭксел.WorkBooks.close(); // закрываем файл- экселя все, добавлен лист в конец. никаких проблем. код восьмерочный, но думаю в седьмой перевести не проблема. |
|||
20
Denp
13.10.10
✎
14:56
|
(19) проблема. Насколько я помню, проблема в том, что в 77 не работают пустые параметры
|
|||
21
Fatum1980
13.10.10
✎
14:59
|
(20) ок.
строку НовыйЛист = НашФайл.Sheets.Add(,НашФайл.ActiveSheet); заменить на: НовыйЛист = НашФайл.Sheets.Add(); один фиг в конц добавит. |
|||
22
Denp
13.10.10
✎
15:00
|
(21) потесть теперь. эксель 2003 добавляет предпоследним
|
|||
23
vS
13.10.10
✎
15:07
|
(21) читай 0 :)
|
|||
24
vS
13.10.10
✎
15:09
|
(17) спс, сейчас проверю
|
|||
25
Fatum1980
13.10.10
✎
15:10
|
(23) а что там? тебе в начало чтоли нужно?
|
|||
26
vS
13.10.10
✎
15:11
|
(25) прочитай
|
|||
27
Fatum1980
13.10.10
✎
15:13
|
(26)
"но так добавляется лист в начало, а мне нужно в конец...." что я не так прочитал? |
|||
28
vS
13.10.10
✎
15:14
|
(27) мне нужно, в конец... а предпоследний, это ПОЧТИ в конец, мне не нужно ПОЧТИ :) нужно апсолютно ;)
|
|||
29
Fatum1980
13.10.10
✎
15:17
|
(28) я что-то написал про почти не конец?
если ты внимательно читаешь ветку, то код что написал я добавляет его в конец, но в восьмерке, мувнуть лист не проблема, хотя если два часа ждать готового решения, то наверное это сложно. сейчас потестю под семеркой отпишу. |
|||
30
Denp
13.10.10
✎
15:23
|
(29) у Add первый параметр - это лист, ПЕРЕД которым добавится лист, по умолчанию перед текущим. В семерку ты не можешь опустить этот параметр, точнее можешь, но вместе со всеми остальными. Поэтому либо ты указываешь лист, перед которым вставить, либо вставляешь перед текущим. Поэтому (21) не отработает как надо
|
|||
31
Fatum1980
13.10.10
✎
15:32
|
(30) согласен, в семерке только двигать лист.
|
|||
32
smaharbA
13.10.10
✎
15:56
|
Ексель=СоздатьОбъект("Excel.Application");
Ексель.Visible=-1; Книги=Ексель.WorkBooks; Книга=Книги.Add(); Листы=Книга.WorkSheets; Лист=Листы.Add(Листы.Item(Листы.Count)); Листы.Item(Листы.Count).Move(Лист); Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="vbscript"; Скрипт.AddObject("Листы",Листы); Лист=Скрипт.Eval("[Листы].Add(,[Листы].Item([Листы].Count))"); есть еще пара вариантов |
|||
33
Denp
13.10.10
✎
16:03
|
(32) без скриптов есть? просто из интереса спрашиваю
|
|||
34
smaharbA
13.10.10
✎
16:04
|
(33) есть, используется Excel4Macro
|
|||
35
smaharbA
13.10.10
✎
16:05
|
только сейчас на вскидку не скажу как, надо справку зырить, вней говорится, что только перед активным на сколько помню, но как то изворачивался
|
|||
36
vS
13.10.10
✎
16:06
|
(29) я два часа немного другим занимался :) и сейчас занимаюсь, этот вопрос пока отложил... как освобожусь, попробую предпоследний в конец перекидывать
|
|||
37
Denp
13.10.10
✎
16:07
|
(34) а это что такое?
|
|||
38
smaharbA
13.10.10
✎
16:08
|
(37) это методы для объекта апликейшн (екселя) выполнения устаревших макрокоманд
|
|||
39
vS
13.10.10
✎
16:53
|
(17) чото они не перемещаются.... команда выполняется, но ни чего не происходит :(
|
|||
40
Denp
13.10.10
✎
16:54
|
(39) а (32)?
|
|||
41
vS
13.10.10
✎
17:01
|
(40) чото (32) пока религия не позволяет... (17) работает... тупанул немного :) куча файлов открытая... не то не туда снесло :)
|
|||
42
smaharbA
13.10.10
✎
17:36
|
(41) какая на религия, в (32) два способа добавления, один как в (17) но более правильный
|
|||
43
vS
13.10.10
✎
17:41
|
(42) с первым согласен... а вот скрипты это уже религия :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |