Всем добрый вечер. Можно ли как-то запретить открытие одного и того же файла несколько раз. Событие обрабатывается по кнопке. Если открываю разные файлы, то все в порядке, проблема - если файл тот же. Хотел сделать, чтобы при попытке повторного открытия выскакивало сообщение, что-то типа: Файл уже открыт! и т.д. Так у меня получается ошибка: "Файл уже используется!"/ Пробовал не запрещать открытие, а просто открывать в новом окне - тоже неудача. [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
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' Внес изменения
Так должно правильно работать [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
Сообщение отредактировал doober - Среда, 02.04.2014, 02:23
Всем Доброе утро!!! Уважаемый 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
Всем Доброе утро!!! Уважаемый 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