Страницы: 1
RSS
Обнаружить ошибку с несуществующим именем
 
Если создается Диапозон с именем, который не пременим в Excel (ну например, когда в приведеном ниже примере строковое выражение st содержит побел):    
ActiveWorkbook.Names.Add Name:=st, RefersToR1C1:="=Группы!R1С2"  
то ошибка легко обходится с помощью On Error Resume Next.    
Вопрос заключается в том, что когда переименовываешь диапозон (например, ActiveWorkbook.Names(st).Name = st1, где st1-новое имя), то если st1 также является недопустимым, то ошибка с помощью On Error Resume Next не обнаруживается (в этом случае Excel просто сохраняет старое имя (st)).    
 
Вопрос: Как обнаружить ошибку в новом имени при переименовании диапозонов?  
Заранее благодарю.
 
Попробуйте так:  
 
Sub test()  
   st = "имя"  
   st1 = "неправильное имя"  
   On Error Resume Next  
   ActiveWorkbook.Names.Add Name:=st, RefersToR1C1:="=Группы!R1C2"  
   If Err Then MsgBox "Имя st некорректно", vbCritical  
   Err.Clear  
   ActiveWorkbook.Names(st).Name = st1  
   x = ActiveWorkbook.Names(st1).Name  
   If Err Then MsgBox "Имя st1 некорректно", vbCritical  
End Sub
 
Спасибо, помогло.....  
Ключевую роль играет присвоение несуществующего имени переменной x, что Exel уже проглатить не может.  
Признаюсь, сам не смог догадаться (хотя все гениальное просто), хотя что только сам не пробовал...
Страницы: 1
Читают тему
Наверх
Loading...