Страницы: 1
RSS
Если книга открыта то "условие" (VBA).
 
Здравствуйте уважаемые форумчане.  
Существует файл с базами данных. В этом файле есть макрос с пом. которого открывается другой файл например "Разница.xls" и копируются данные с файла База_данных в этот файл (Разница). Но иногда бывает что файл Разница уже открыт, так как сделать так, чтоб если книга открыта, то макрос активировал файл, вместо отркыть?
 
воспользуйтесь данной функцией для того что бы узнать открыта ли книга или нет:  
 
Public Function WorkBookIsOpen(wbName) As Boolean  
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''­''''''''''  
' WorkBookIsOpen  
' Функция получает имя книги, если книга открыта - True, иначе False  
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''­''''''''''  
Dim X As Workbook  
WorkBookIsOpen = False  
On Error Resume Next  
Set X = Workbooks(wbName)  
WorkBookIsOpen = Err = 0  
End Function  
 
В основном макросе пишем:  
If WorkBookIsOpen("имя_проверяемой_книги") Then    
Workbooks("имя_проверяемой_книги").Activate  
Else  
Workbooks.Open("путь к нужной книге")  
End if
Редко но метко ...
 
Если проблема в том, что книга уже открыта, то можно отключить вывод сообщений и в конце включить:  
Application.DisplayAlerts = False  ------отключаем  
Ваш код......  
Application.DisplayAlerts = True   ------Заново включаем
 
Посмотрите пример с функцией IsFileOpen здесь:  http://www.planetaexcel.ru/forum.php?thread_id=15498
 
Можно копировать данные с открытых книг, как-то так:  
Windows(ThisWorkbook.Name).ActivateNext  
ActiveWorkbook.ActiveSheet.UsedRange.Copy
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Всем огромное спасибо!
Страницы: 1
Читают тему
Наверх