Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Повторное открытие одного и того же файла Word - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Повторное открытие одного и того же файла Word (Макросы/Sub)
Повторное открытие одного и того же файла Word
Dмитрий Дата: Вторник, 01.04.2014, 23:30 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Всем добрый вечер. Можно ли как-то запретить открытие одного и того же файла несколько раз. Событие обрабатывается по кнопке. Если открываю разные файлы, то все в порядке, проблема - если файл тот же. Хотел сделать, чтобы при попытке повторного открытия выскакивало сообщение, что-то типа: Файл уже открыт! и т.д. Так у меня получается ошибка: "Файл уже используется!"/ Пробовал не запрещать открытие, а просто открывать в новом окне - тоже неудача.
[vba]
Код

Dim strFileName As String
   Dim strFile As String
    ' Имя и путь  файла
    strFile = "" & Cells(r3, 25) & ".doc"
    strFileName = "E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc"
    ' Проверяю (наверное правильно)
    If Dir(strFileName) <> "" Then ' найден
    Dim objWrdApp As Object, objWrdDoc As Object
      ' пробовал так  
     If objWrdApp Is Nothing Then
         Set objWrdApp = CreateObject("Word.application")
End If  
     objWrdApp.Visible = True
   ' и так  
     'If objWrdDoc Is Nothing Then
  Set objWrdDoc = objWrdApp.Documents.Open("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc") 'откр. документ Word
   'End If
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
[/vba]
 
Ответить
СообщениеВсем добрый вечер. Можно ли как-то запретить открытие одного и того же файла несколько раз. Событие обрабатывается по кнопке. Если открываю разные файлы, то все в порядке, проблема - если файл тот же. Хотел сделать, чтобы при попытке повторного открытия выскакивало сообщение, что-то типа: Файл уже открыт! и т.д. Так у меня получается ошибка: "Файл уже используется!"/ Пробовал не запрещать открытие, а просто открывать в новом окне - тоже неудача.
[vba]
Код

Dim strFileName As String
   Dim strFile As String
    ' Имя и путь  файла
    strFile = "" & Cells(r3, 25) & ".doc"
    strFileName = "E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc"
    ' Проверяю (наверное правильно)
    If Dir(strFileName) <> "" Then ' найден
    Dim objWrdApp As Object, objWrdDoc As Object
      ' пробовал так  
     If objWrdApp Is Nothing Then
         Set objWrdApp = CreateObject("Word.application")
End If  
     objWrdApp.Visible = True
   ' и так  
     'If objWrdDoc Is Nothing Then
  Set objWrdDoc = objWrdApp.Documents.Open("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc") 'откр. документ Word
   'End If
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
[/vba]

Автор - Dмитрий
Дата добавления - 01.04.2014 в 23:30
doober Дата: Среда, 02.04.2014, 02:10 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Так должно правильно работать
[vba]
Код
Dim strFileName As String
          Dim strFile As String
          ' Имя и путь  файла
          strFile = "" & Cells(r3, 25) & ".doc"
          strFileName = "E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc"
          ' Проверяю (наверное правильно)
          If Dir(strFileName) <> "" Then    ' найден
              Dim objWrdApp As Object, objWrdDoc As Object
              ' пробовал так
              If objWrdApp Is Nothing Then
                  Set objWrdApp = CreateObject("Word.application")
              End If
              objWrdApp.Visible = True
              ' и так
              'If objWrdDoc Is Nothing Then
              strFileName = "E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc"

              For Each d In objWrdApp.Windows'   Внес изменения
                  If d.Document.FullName = strFileName Then
                      Set objWrdDoc = d.Document: GoTo Дальше
                  End If
              Next
              Set objWrdDoc = objWrdApp.Documents.Open("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc")    'откр. документ Word
Дальше:

              'End If
              Set objWrdDoc = Nothing: Set objWrdApp = Nothing
[/vba]

Забыл,что работа не в ворде идет

 For Each d In objWrdApp.Windows' Внес изменения




Сообщение отредактировал doober - Среда, 02.04.2014, 02:23
 
Ответить
СообщениеТак должно правильно работать
[vba]
Код
Dim strFileName As String
          Dim strFile As String
          ' Имя и путь  файла
          strFile = "" & Cells(r3, 25) & ".doc"
          strFileName = "E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc"
          ' Проверяю (наверное правильно)
          If Dir(strFileName) <> "" Then    ' найден
              Dim objWrdApp As Object, objWrdDoc As Object
              ' пробовал так
              If objWrdApp Is Nothing Then
                  Set objWrdApp = CreateObject("Word.application")
              End If
              objWrdApp.Visible = True
              ' и так
              'If objWrdDoc Is Nothing Then
              strFileName = "E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc"

              For Each d In objWrdApp.Windows'   Внес изменения
                  If d.Document.FullName = strFileName Then
                      Set objWrdDoc = d.Document: GoTo Дальше
                  End If
              Next
              Set objWrdDoc = objWrdApp.Documents.Open("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc")    'откр. документ Word
Дальше:

              'End If
              Set objWrdDoc = Nothing: Set objWrdApp = Nothing
[/vba]

Забыл,что работа не в ворде идет

 For Each d In objWrdApp.Windows' Внес изменения

Автор - doober
Дата добавления - 02.04.2014 в 02:10
Dмитрий Дата: Среда, 02.04.2014, 09:26 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Всем Доброе утро!!!
Уважаемый doober, так в принципе тоже самое. Упорно пытается открыть уже открытый файл.
[vba]
Код
  If Dir(strFileName1) <> "" Then ' найден
       Dim objWrdApp As Object, objWrdDoc As Object       
        If objWrdApp Is Nothing Then
Set objWrdApp = CreateObject("Word.application")
End If      
        objWrdApp.Visible = True           
        For Each d In objWrdApp.Windows
                    If d.Document.FullName = strFileName Then
                        Set objWrdDoc = d.Document: GoTo Дальше
                    End If
                Next     
     Set objWrdDoc = objWrdApp.Documents.Open("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc")
Дальше:
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
Else
Beep
MsgBox "Файл поврежден либо отсутствует!!!", vbInformation
End If
[/vba]
Ругается на строку:
Цитата
Set objWrdDoc = objWrdApp.Documents.Open("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc")

Ошибка Error 462. Может я что-то не так сделал


Сообщение отредактировал Dмитрий - Среда, 02.04.2014, 09:31
 
Ответить
СообщениеВсем Доброе утро!!!
Уважаемый doober, так в принципе тоже самое. Упорно пытается открыть уже открытый файл.
[vba]
Код
  If Dir(strFileName1) <> "" Then ' найден
       Dim objWrdApp As Object, objWrdDoc As Object       
        If objWrdApp Is Nothing Then
Set objWrdApp = CreateObject("Word.application")
End If      
        objWrdApp.Visible = True           
        For Each d In objWrdApp.Windows
                    If d.Document.FullName = strFileName Then
                        Set objWrdDoc = d.Document: GoTo Дальше
                    End If
                Next     
     Set objWrdDoc = objWrdApp.Documents.Open("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc")
Дальше:
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
Else
Beep
MsgBox "Файл поврежден либо отсутствует!!!", vbInformation
End If
[/vba]
Ругается на строку:
Цитата
Set objWrdDoc = objWrdApp.Documents.Open("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc")

Ошибка Error 462. Может я что-то не так сделал

Автор - Dмитрий
Дата добавления - 02.04.2014 в 09:26
anvg Дата: Среда, 02.04.2014, 09:56 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
Может проще получать ссылку на документ так?
Код
Set objWrdDoc = GetObject("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc")

Если файл открыт - вернёт ссылку на открытый, иначе откроет.
 
Ответить
СообщениеДоброе время суток
Может проще получать ссылку на документ так?
Код
Set objWrdDoc = GetObject("E:\ДОГОВОР\" & Cells(r3, 23) & "\" & Cells(r3, 25) & ".doc")

Если файл открыт - вернёт ссылку на открытый, иначе откроет.

Автор - anvg
Дата добавления - 02.04.2014 в 09:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Повторное открытие одного и того же файла Word (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!