|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.06.2010, 17:46 | #1 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
открыть скриптом файл Excel
Здравствуйте, уважаемые!
Можно ли из скрипта открыть файл Excel, не активизируя предварительно приложение (т.е. как делаем с рабочего стола)? Желательно без API. Exec открывает только приложения, Get только позволяет получить свойства... Как только ни пробовал - не идет. Помогите, плиз! |
03.06.2010, 18:52 | #2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Укажете свой путь к файлу
Код:
Анализ,обработка данных Недорого
|
03.06.2010, 19:07 | #3 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Спасибо, что откликнулись!
Такой вариант пробовал, не подходит -( Мне надо именно открыть файл, чтобы вызывалась автоматом текущая сессия Excel. Дело в том, что в 2003 sp3 версии по такой команде почему-то открывается файл, из которого установленная надстройка видна, а ее проект недоступен, и не открывается макрос Public надстройки |
04.06.2010, 06:26 | #4 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Код:
Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 04.06.2010 в 08:31. |
|
04.06.2010, 09:53 | #5 | |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Цитата:
Вот полный текст скрипта с дополнениями для прямой адресации: Nmb = "46000" ' изменяемая часть имени надстройки Set objShellApp = CreateObject("Shell.Application") Set FSO = CreateObject("Scripting.FileSystemO bject") ' ввел дополнительно для прямой адресации: Set oShell = CreateObject("WScript.shell") AddinTitle = "Calc_MKS" & Nmb ' ввел дополнительно для прямой адресации: AddInsPath = oShell.ExpandEnvironmentStrings("%A PPDATA%\Microsoft\AddIns\") AddInName = "Calc_MKS" & Nmb & ".xla" AddinPath=AddInsPath & "\" & AddInName On Error Resume Next Set XL = GetObject(, "Excel.Application") If Err.Number <> 0 Then objShellApp.ShellExecute "excel.exe", , , , 3 WScript.Sleep 1500 Set XL = GetObject(, "Excel.Application") else XL.Workbooks.add end if With XL if .Addins(AddinTitle).Installed = False Then .Addins(AddinTitle).Installed =True WScript.Sleep 1000 end if WScript.Sleep 1000 .Run "StartCalc" & Nmb ' а этот вариант не срабатывает??: '.Run 'AddinPath'!"StartCalc" & Nmb End With Ошибки в синтаксисе полного адреса вроде нет, и адрес точный. В принципе, приведенный вариант работает, но как-то неустойчиво - задолбала необходимость применения Sleep-ов! Вот если бы иметь команды ожидания завершения, но таких что-то не найду Кстати, когда пробовал CreteObject - в новой книге надстройка была видна, инсталлировалась, макрос запускался при первом пуске, а при последующих видимость надстройки оставалась, а проект в VBA пропадал ?? |
|
04.06.2010, 10:12 | #6 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Код:
Чем шире угол зрения, тем он тупее.
|
|
04.06.2010, 10:54 | #7 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Пасиб, SAS888 и doober!
В редакции SAS888 команда заработала (у меня еще в пути лишний слэш, правда, в проге-то правильно, только в форуме не исправил) Но синтаксис команды так и не понял, особенно первый "&". Может теперь что подскажете вместо Sleep? В том же InnoSetup используется опция "ждать завершения", м.б. и какой-нить вариант в скриптах есть? А то эти задержки мало того, что тормозят сами по себе, приходится их подгонять на быстродействие конкретных ПЭВМ, т.е. на самое медленное |
04.06.2010, 11:14 | #8 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Чем шире угол зрения, тем он тупее.
|
|
04.06.2010, 11:45 | #9 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Спасибо, SAS888, теперь дошло!
А то от обилия кавычек в глазах зарябило! |
04.06.2010, 16:56 | #10 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Прошу прощения за назойливость!
Теперь действительно при инсталлированной надстройке макрос стал запускаться без сбоев. Другая проблема - надстройка не инсталлируется при первом пуске скрипта. Правда, проявилось только в Win XP Sp2, в Sp3 и Vista - все нормально?? (команда в тексте выше - .Addins(AddinTitle).Installed =True) Создается и открывается новый файл "Книга1", надстройка (не инсталлированная) в нем видна, вручную инсталлируется И опять-таки проект надстройки в новой книге отсутствует! Может и для инсталляции надо прямо адресоваться, а не по Title? Подскажите, плиз! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Открыть из Delphi файл Excel | masterdela | Общие вопросы Delphi | 5 | 30.03.2010 10:47 |
открыть файл Excel в пустой книге | segail | Microsoft Office Excel | 1 | 29.03.2010 11:30 |
Как открыть файл? | Xnarcotic | Общие вопросы Delphi | 4 | 14.06.2009 11:51 |
Как открыть файл в Excel | globalhunter | Общие вопросы Delphi | 2 | 11.02.2008 01:30 |
Открыть файл dbClick-ом; | Altera | Помощь студентам | 1 | 03.02.2008 15:40 |