Страницы: 1
RSS
Проблема с ".EntireColumn.AutoFit"
 
Уважаемый Лузер показал, как пишется макрос для внесения изменений в защищенные ячейки:  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
ActiveSheet.Unprotect Password:="123"  
If Target.Cells.Count > 1 Then Exit Sub  
If Not Intersect(Target, Range("B2:AC100")) Is Nothing Then  
With Target(1, 50)  
.Value = Now  
.EntireColumn.AutoFit  
End With  
End If  
ActiveSheet.Protect Password:="123"  
End Sub  
 
Спасибо!  
 
Но макрос выполняется только до .EntireColumn.AutoFit, затем глохнет и просит отладки (на .EntireColumn.AutoFit указываетжелтая стрелочка).  
 
Что я делаю не так?  
Как сделать правильно?
 
Спасибо, нашел самостоятельно на этом же сайте:  
http://www.planetaexcel.ru/forum.php?thread_id=431&forumaction=newreplyquoted&post_id=1599&page_forum=lastpage&allnum_forum=2  
 
Надо просто удалить эту строку и все дела :)
 
Но если Вам все же нужен автоподбор ширины столбца, попробуйте добавить в код отключение контроля событий. Тогда не будет ошибки.  
Private Sub Worksheet_Change(ByVal Target As Range)  
ActiveSheet.Unprotect Password:="123"  
   If Target.Cells.Count > 1 Then Exit Sub  
       If Not Intersect(Target, Range("B2:AC100")) Is Nothing Then  
       Application.EnableEvents = False  
           With Target(1, 50)  
               .Value = Now  
               .EntireColumn.AutoFit  
           End With  
       Application.EnableEvents = True  
   End If  
ActiveSheet.Protect Password:="123"  
End Sub
 
Я бы добавил, что обработку событий полезно в любом случае отключать в кодах событий, таких как Worksheet_Change, Worksheet_SelectionChange. Часто приводит к зацикливанию и/или лишнему выполнению ненужного кода.
Страницы: 1
Читают тему
Наверх