Страницы: 1 2 След.
RSS
Открыть сторонний файл
 
Здравствуйте.

Подскажите, как макросом открыть сторонний файл, в данном случае exe, где сама книга и файл находятся в одной директории?
Изменено: Серега_ - 19.10.2015 20:41:50
 
Можно сделать это проще с помощью гиперссылки
 
Код
Set objSh = CreateObject("Shell.Application")
objSh.Open ("C:\Windows\notepad.exe")
objSh.Open (ThisWorkbook.Path & "\ВашаПрограмма.exe")
 
Цитата
knight написал:
Можно сделать это проще с помощью гиперссылки
Гиперссылку то я создал, но файл не открывается, выходит сообщение, что не найден системный файл, хотя системный файл находится в той же директории.
 
Цитата
B.Key написал:
Код?123Set objSh = CreateObject("Shell.Application")objSh.Open ("C:\Windows\notepad.exe")objSh.Open (ThisWorkbook.Path & "\ВашаПрограмма.exe")
Открывается блокнот...
 
Так блокнот для примера написан :), закоментируйте.
Впишите вместо ВашаПрограмма имя Вашей программы.
 
Может у Вас там ярлык? и программа запускается с доп параметрами?
 
Цитата
B.Key написал:
Так блокнот для примера написан , закоментируйте.
Впишите вместо ВашаПрограмма имя Вашей программы
Может что не так
Код
Set objSh = CreateObject("Shell.Application")
objSh.Open (ThisWorkbook.Path & "\density\density.exe")
что то вообще молчит.
 
Цитата
написал:
где сама книга и файл находятся в одной директории?
значит должно быть так
Код
Set objSh = CreateObject("Shell.Application")
objSh.Open (ThisWorkbook.Path & "\density.exe")
Изменено: B.Key - 19.10.2015 23:09:02
 
Цитата
B.Key написал:
где сама книга и файл находятся в одной директории?
Файл excl и папка (density) с файлом density.exe находятся в одной директории и эта директория находится на носителе. Я даже его гиперссылкой открыть не могу, выходит сообщение, что системный файл не обнаружен, который находится тоже в директории с файлом ехе.
Изменено: Серега_ - 19.10.2015 23:26:19
 
При таком варианте
Код
Set objSh = CreateObject("Shell.Application")
objSh.Open (ThisWorkbook.Path & "\density\density.exe")
Выходит сообщение что системный файл не обнаружен.
А при таком
Код
Set objSh = CreateObject("Shell.Application")
objSh.Open (ThisWorkbook.Path & "\density.exe")
вообще молчит...
 
А Вас не наводит на мысль сообщение ОС, что файл не обнаружен? Зачем искать причину в коде, когда причина в другом месте? Как можно открыть файл, если система его просто не видит по Вашему пути?
Я бы посоветовал Вам простым кодом получить путь до Вашего файла и уже этот путь попробовать в гиперссылку и в код подставить. Вполне возможно, что-то в части пути упускаете.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Код
set objSh = createobject("Wscript.Shell")
objSh.CurrentDirectory=ThisWorkbook.Path & "\"
objSh.run ThisWorkbook.Path & "\density.exe"),0

попробуйте так
Изменено: B.Key - 19.10.2015 23:30:08
 
Цитата
The_Prist написал:
простым кодом
Это что создать гиперссылку?
 
Цитата
B.Key написал:
попробуйте так
Не находит системный файл System.dll (он в той же директории что и density.exe)
Изменено: Серега_ - 19.10.2015 23:39:53
 
а он двойным кликом запускается?
 
Цитата
B.Key написал:
а он двойным кликом запускается?
Да конечно
 
В общем если ничего не помогает (бывает такое) надо батник программно писать и потом его запускать.
 
Цитата
B.Key написал:
В общем если ничего не помогает (бывает такое) надо батник программно писать и потом его запускать.
Смотри-ка как, думал хоть тут проблем не будет… Решил, создам гиперссылку, а открытие файл запишу макросом, не тут то было.

Лады оставим это…
Спасибо B.Key что уделили внимание.
 
Это из этой оперы?
 
Цитата
B.Key написал:
Это из этой оперы?
Да нет, это программка определение плотности топлива в зависимости от температуры с построением графика.
 
Цитата
Серега_ написал:
Это что создать гиперссылку?
Код
Sub ShowGetOpenDialod()    Dim avFiles
    'по умолчанию к выбору доступны текстовые файлы
    avFiles = Application.GetOpenFilename _
                ("Excel files(*.xls*),*.xls*", 1, "Выбрать Excel файлы", , False)
    If VarType(avFiles) = vbBoolean Then
        'была нажата кнопка отмены - выход из процедуры
        Exit Sub
    End If
    'avFiles - примет тип String
    MsgBox "Выбран файл: '" & avFiles & "'", vbInformation, "www.excel-vba.ru"
    set objSh = createobject("Wscript.Shell")
    objSh.run (avFiles,1)
End Sub
еще бытует мнение, что если в пути к файлу есть пробелы, то лучше брать в доп.кавычки:
Код
dim path as string
path = ThisWorkbook.Path & "\density\density.exe"
Set objSh = CreateObject("Shell.Application")
objSh.run """" & path & """", 1
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал:
еще бытует мнение, что если в пути к файлу есть пробелы, то лучше брать в доп.кавычки:
Если я
правильно понял то точная ссылка
Код
K:\объем\2015\density\density.exe
Но открыть файл по данной ссылке тоже невозможно также ОС не находит системный файл System.dll…
 
Как вариант, замените \объем\ на англицкие буквы
Переименуйте папку
Изменено: Doober - 20.10.2015 01:03:59
 
Цитата
Doober написал:
Как вариант, замените \объем\ на англицкие буквы
Не открывает, ту походу что-то все-таки связано с двойным кликом по файлу, где на этот момент происходит поиск или определение системного файла, что дает его впоследствии открыть.
Изменено: Серега_ - 20.10.2015 01:09:17
 
Полный текст ошибки в студию.
А если эту папку на диск с перенести и проверить.Какие файлы найти не может?
Попробуйте в макросе перед запуском выполнить
Код
CHDIR   Ваш путь к папке

Указать таким образом текущую директорию
Изменено: Doober - 20.10.2015 01:22:43
 
Код
А если эту папку на диск с перенести и проверить.Какие файлы найти не может?
Системный файл System.dll, который находится в той же директории что и файл exe.
Код
Полный текст ошибки в студию.
Ошибки как таковой нет, есть сообщение пороги
Изменено: Серега_ - 20.10.2015 01:36:03
 
Кидаете батник в папку с  density.exe.
Запускаете батник,смотрите результат.
Если положительный,то запускаете батник как
Код
path = ThisWorkbook.Path & "\density\Запуск.bat"

Будьте внимательны,кодировка файла ОЕМ866,используйте  лучше латиницу,если нет опыта
Изменено: Doober - 20.10.2015 03:19:16
 
Цитата
Серега_ написал:
Ошибки как таковой нет, есть сообщение пороги
Так получается, что приложение-то запускается, но по всей видимости не рассчитано оно на подобный вид запуска(может программерская ошибка, может иного пути нет).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Ну если Doober с батником не поможет, останется еще запасной вариант с sendkeys
Страницы: 1 2 След.
Читают тему
Наверх