Страницы: 1
RSS
автоматический подгон ячеек по высоте (с переносом слов)
 
Подскажите пожалуйста,  
 
На защищенном листе необходимо сделать подгон ячейки по высоте.  
 
То есть при введении какого-либо текста, он должен полностью умещаться в ячейке, при этом должна изменятся только высота.  
 
Спасибо!
 
Возможно я ошибаюсь, полагая, что в VBA у ячейки нет свойства, позволяющего отследить количество строк перенесенного текста (.WrapText = True). А без возможности отслеживать количество и высоту строк задача не решаема средствами VBA.  
 
Sorry....
 
Target  
Unprotect  
Selection.Rows.AutoFit  
protect  
или  
при постановке защиты галка на форматирование строк  
не для объединения  
с ним чуть сложнее
 
Правым мышом по ярлыку листа - исходный текст и вставляем простенький макрос:)))  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target.Count > 1 Then Exit Sub 'если выделено больше 1 ячейки - выход  
ActiveSheet.Unprotect      
With Target 'с ячейкой форматируем  
       .HorizontalAlignment = xlGeneral  
       .VerticalAlignment = xlBottom  
       .WrapText = True  
       .Orientation = 0  
       .AddIndent = False  
       .IndentLevel = 0  
       .ShrinkToFit = False  
       .ReadingOrder = xlContext 'перенос по словам  
       .MergeCells = False 'объединение ячеек  
   End With  
   Target.EntireRow.AutoFit 'автоподбор высоты строки содержащей ячеку  
 
End Sub
 
Блин забыл, перед выходом вставляем  
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True  
и только потом  
End Sub
Страницы: 1
Читают тему
Наверх