Страницы: 1
RSS
Повторное открытие файла
 
Как сделать так чтобы не выводилось сообщение о повторном открытии файла и при этом уже открытый ранее файл не обновлялся. (прошу макрос)
 
Не совсем понятно, а точнее ничего не понятно. Вы пытаетесь открыть один и тот же файл дважды? Т.е. хотите открыть файл, который уже открыт?
 
Sub Макрос1()  
Dim iFileName As String  
 
   iFileName = "Пример.xls" 'имя вашего файл  
   If IsWorkbookOpen(iFileName) Then  
       MsgBox "Книга " & iFileName & " уже открыта!", 48, ""  
   Else  
       MsgBox "Книга " & iFileName & " не открыта!", 48, ""  
   End If  
End Sub  
 
Private Function IsWorkbookOpen(wbName As String) As Boolean  
'   Returns TRUE if the workbook is already opened  
   On Error Resume Next  
   With Workbooks(wbName): End With  
   IsWorkbookOpen = (Err = 0)  
End Function
 
Кто-нибудь объъяснит о чём речь?
 
Согласен с Юрием, что просто повторное открытие файла - это не есть хорошо. Т.к. все не сохранённые данные удаляться при повторном открытии.  
Если вам надо проверить открыта ли уже нужная вам книга, чтобы случайно не открыть её ещё раз, я вам дал код выше.  
Если вы отдаёте себе отчёт и всё-таки хотите повторно открыть уже открытый файл, то  
 
Sub Макрос1()  
   Application.DisplayAlerts = False  
   Workbooks.Open Filename:="C:\Temp\Пример.xls", UpdateLinks:=False  
End Sub
 
{quote}{login=Pavel55}{date=29.12.2008 01:16}{thema=}{post}Согласен с Юрием, что просто повторное открытие файла - это не есть хорошо. Т.к. все не сохранённые данные удаляться при повторном открытии.  
Если вам надо проверить открыта ли уже нужная вам книга, чтобы случайно не открыть её ещё раз, я вам дал код выше.  
Если вы отдаёте себе отчёт и всё-таки хотите повторно открыть уже открытый файл, то  
 
Sub Макрос1()  
   Application.DisplayAlerts = False  
   Workbooks.Open Filename:="C:\Temp\Пример.xls", UpdateLinks:=False  
End Sub{/post}{/quote}  
 
 
Уважаемый Pavel55  
Вопрос состоит в том, что если файл «Пример.xls» открыт , то при повторном его открытии не должно появлялось сообщение с предложением заменить файл  или нет и далее замена уже открытого файла не должна происходить. В предложенном коде замена почему то происходит.
 
У меня, если пытаюсь открыть уже открытый файл, никакого сообщения вообще не появляется. Просто становится активным запрашиваемый.
 
{quote}{login=Стас}{date=29.12.2008 10:43}{thema=Re: Повторное открытие файла}{post}{quote}{login=Pavel55}{date=29.12.2008 01:16}{thema=}{post}Согласен с Юрием, что просто повторное открытие файла - это не есть хорошо. Т.к. все не сохранённые данные удаляться при повторном открытии.  
Если вам надо проверить открыта ли уже нужная вам книга, чтобы случайно не открыть её ещё раз, я вам дал код выше.  
Если вы отдаёте себе отчёт и всё-таки хотите повторно открыть уже открытый файл, то  
 
Sub Макрос1()  
   Application.DisplayAlerts = False  
   Workbooks.Open Filename:="C:\Temp\Пример.xls", UpdateLinks:=False  
End Sub{/post}{/quote}  
 
 
Уважаемый Pavel55  
Вопрос состоит в том, что если файл «Пример.xls» открыт , то при повторном его открытии не должно появлялось сообщение с предложением заменить файл  или нет и далее замена уже открытого файла не должна происходить. В предложенном коде замена почему то происходит.{/post}{/quote}Тогда проверяйте его на открытие:  
 
If Not IsWorkbookOpen("Пример.xls") Then Workbooks.Open Filename:="C:\Temp\Пример.xls"  
 
Private Function IsWorkbookOpen(wbName As String) As Boolean  
' Returns TRUE if the workbook is already opened  
On Error Resume Next  
With Workbooks(wbName): End With  
IsWorkbookOpen = (Err = 0)  
End Function  
Вариантов проверки на открытие (функция IsWorkbookOpen) много, смотрим их подробнее здесь: http://www.msoffice.nm.ru/faq/macros/workbooks2.htm#faq93
 
Забыл залогиниться :)
Bite my shiny metal ass!      
Страницы: 1
Читают тему
Наверх