Страницы: 1
RSS
Как из активной книги EXCEL открыть WORD документ
 
Добрый день.

Нужно открыть DOC файл из пути excel активной книги.
Код
    Dim WD
    Set WD = CreateObject("Word.Application")
    WD.Visible = True
    WD.Application.WindowState = 1
    WD.Documents.Open Filename:=ActiveWorkbook.Path & "\ТЗ\" & "шаблон сайта услуг.docx"
    WD.Activate

Но проблема в том, что в Word нет такого параметра как ActiveWorkbook.Path там есть CurrentProject.Path

Соответственно выше код ни чего не делает, так как не воспринимает ActiveWorkbook.Path

Возможно ли как-то показать, что doc файл нужно открыть из пути активной книги EXCEL

 
Должно работать. Какую ошибку выдает?  
 
если ваша активная книга - это еще ни разу не сохранявшаяся новая книга Excel  свойство ActiveWorkbook.Path там пусто!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
mazersw написал:
не воспринимает ActiveWorkbook.Path
все он воспринимает. Посмотрите для начала что там вообще записано.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
pantel1987 написал:
Должно работать. Какую ошибку выдает?  
Не выдает, использую в такой конструкции:
Т.е. после копирования файла нужно открыть его, вроде ошибок нет....
Код
....
i = MsgBox("Если это сайт услуг - выбирете ДА, иначе НЕТ для информационного сайта", vbYesNoCancel + vbQuestion + vbDefaultButton3, "Выбрать шаблон ТЗ")
If i = vbCancel Then Exit Sub
 
   If i = vbYes Then
      ' код для выбора "ДА"
      If Len(Dir$(ActiveWorkbook.Path & "\ТЗ\шаблон сайта услуг.docx")) > 0 Then
Else
    sFileName = "E:\файлы\шаблон сайта услуг.docx"    'имя файла для копирования
    sNewFileName = ActiveWorkbook.Path & "\ТЗ\" & "шаблон сайта услуг.docx"       'имя копируемого файла. Директория(в данном случае диск D) должна существовать
    If Dir(sFileName, 16) = "" Then MsgBox "Нет такого файла", vbCritical, "Ошибка": Exit Sub
    FileCopy sFileName, sNewFileName 'копируем файл
    Set WD = CreateObject("Word.Application")
    WD.Visible = True
    WD.Application.WindowState = 1
    WD.Documents.Open Filename:=ActiveWorkbook.Path & "\ТЗ\" & "шаблон сайта услуг.docx"
    WD.Activate
End If
   Else
      ' код для выбора "НЕТ"

....
Изменено: mazersw - 29.10.2020 17:49:39
 
из всех заданных вопросов Вы решили выбрать только один? :)
Цитата
mazersw написал:
вроде ошибок нет
значит где-то в начале кода есть On Error Resume Next, который не отключен и работает до конца кода.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
значит где-то в начале кода есть On Error Resume Next, который не отключен и работает до конца кода.
Нет такого нету там.
Если я указываю полный путь до файла, все открывает, если через ActiveWorkbook.Path - не хочет :(
 
Цитата
mazersw написал:
If Len(Dir$(ActiveWorkbook.Path & "\ТЗ\шаблон сайта услуг.docx")) > 0 Then
Не пробовали после Then перед Else вставить что-то типа MsgBox ActiveWorkbook.Path или ThisWorkbook.Path и посмотреть что получится?
 
Цитата
_Igor_61 написал:
Не пробовали после Then перед Else вставить что-то типа MsgBox ActiveWorkbook.Path или ThisWorkbook.Path и посмотреть что получится?
Да, сейчас сделал вывод, правильный путь до текущей активной книги...
Что и должно быть.
Но WORD файл всеравно не открывается :(

Все разобрался, условия замудренные...
Если файл уже есть, то документ не откроется...

Спасибо за помощь  
Изменено: mazersw - 29.10.2020 18:05:08
 
Попробуйте вместо WD.Documents.Open - MsgBox ActiveWorkbook.Path & "\ТЗ\" & "шаблон сайта услуг.docx" и посмотрите правильный ли путь
 
Цитата
pantel1987 написал:
Попробуйте вместо WD.Documents.Open - MsgBox ActiveWorkbook.Path & "\ТЗ\" & "шаблон сайта услуг.docx" и посмотрите правильный ли путь
ок да все правильно, ошибку нашел спс
Страницы: 1
Наверх