Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Проверка наличия листа в книге
     
    
Добавлено: 02.07.08 18:43
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     Юра
 Юра
      
       
  
Всем привет! Есть такая проблемка. Программа в процессе работы обращается к листам в книге. Но вот в чем дело. Ни в каждой книге есть лист с заданным именем. Поэтому на строке Sheets(.....).Select выдается ошибка, что лист не найден. Вполне логично. Но как сделать так, чтоб прогрмма сначало проверила есть ли лист с таким именем и по результатам проверки выполняла то или иное действие. Короче говоря, как узнать,есть ли лист с конкретным именем в книге до того как выскочет сообщение об ошибке.
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 7
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Boron
 Boron

Вопросов: 5
Ответов: 12
      
 Профиль |  | #1
       
Добавлено:  03.07.08 00:07
       
    
       
  
Только хотел создать тему с немного другой проблемой, но сутью той же.  
     
Вообщем присоединяюсь - кто может подсказать решение проблемы проверки листа на существование? Часа два голову ломаю, ничего дельного не выходит.  
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: Jasmin
 Jasmin




Вопросов: 23
Ответов: 417
      
 Профиль |  | #2
       
Добавлено:  03.07.08 07:04
       
    
       
  
 
    
  Dim obj As Object
  On Error GoTo ErrorHandler:
  Set obj = Sheets(MySheet)
  SheetExists = True
  Exit Function
ErrorHandler:
  SheetExists = False
End Function
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: ADSemenov.ru
 ADSemenov.ru



Вопросов: 5
Ответов: 276
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  03.07.08 20:59
       
    
       
  
    А был ещё более примитивный способ, но длиннее — проверить все листы в книги, обращаясь к ним по индексу. Здесь можно и не просто "существует или нет", а проверить и на какие-либо условия.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: Boron
 Boron

Вопросов: 5
Ответов: 12
      
 Профиль |  | #4
       
Добавлено:  03.07.08 22:29
       
    
       
  
Jasmin, спасибо за ответ!
 
    
ADSemenov.ru, если не трудно, не мог бы написать этот вариант?
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: ADSemenov.ru
 ADSemenov.ru



Вопросов: 5
Ответов: 276
      
 Web-сайт:  
 Профиль |  | #5
      
Добавлено:  04.07.08 00:10
       
    
       
  
    Я написал, но не через индекс, а через просто коллекцию листов. Но, во всяком случае, через объект "s" Вам доступны все свойства листа, включая его содержимое.  
     
  For Each s In Worksheets
    MsgBox s.Index
  Next
    Если захотите через индекс, то количество всех листов доступно через Worksheets.Count.
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: ADSemenov.ru
 ADSemenov.ru



Вопросов: 5
Ответов: 276
      
 Web-сайт:  
 Профиль |  | #6
      
Добавлено:  04.07.08 00:11
       
    
       
  
    Похоже, получается даже не длиннее, чем у предыдущего автора.  
     
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: Jasmin
 Jasmin




Вопросов: 23
Ответов: 417
      
 Профиль |  | #7
       
Добавлено:  04.07.08 06:50
       
    
       
  
Каждый выбирает удобное для него решение.  
     ))
))