Страницы: 1
RSS
Ширина столбца в зависимости от значения ячейки
 
Добрый день!  
Можно ли сделать макрос, который будет автоматически раздвигать ячейку, если значение в ней отображается в виде 1Е+05, а должно быть, например,116 906.
 
{quote}{login=The_Prist}{date=15.09.2009 12:02}{thema=}{post}Правой кнопкой мыши по ярлычку листа-Исходный текст  
Private Sub Worksheet_Change(ByVal Target As Range)  
Application.ScreenUpdating = False  
   Columns(Target.Column).EntireColumn.AutoFit  
   If Columns(Target.Column).ColumnWidth < 10 Then Columns(Target.Column).ColumnWidth = 10  
Application.ScreenUpdating = True  
End Sub  
 
Если надо такое во всех листах, то вставьте этот код в модуль ЭтаКнига  
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)  
Application.ScreenUpdating = False  
   Columns(Target.Column).EntireColumn.AutoFit  
   If Columns(Target.Column).ColumnWidth < 10 Then Columns(Target.Column).ColumnWidth = 10  
Application.ScreenUpdating = True  
'   If Target <> sValue Then Target.Interior.ColorIndex = 3  
End Sub{/post}{/quote}  
 
Решение не подходит.  
Есть необходимость при данном размере шрифта значения в ячейке, анализируя только конкретную ячейку, раздвигать столбец до тех пор, пока число не станет читаться "нормально".  
Ваш способ-сделать автоподбор ширины и установить "жёстко" ширину столбца 10.
 
Тогда, вместо    
Columns(Target.Column).EntireColumn.AutoFit    
что-то типа    
Worksheets("Sheet1").Range("A1").Columns.AutoFit
 
{quote}{login=The_Prist}{date=15.09.2009 12:28}{thema=Re: Re: }{post}{quote}{login=TopS}{date=15.09.2009 12:18}{thema=Re: }{post}Ваш способ-сделать автоподбор ширины и установить "жёстко" ширину столбца 10.{/post}{/quote}А Вы пробовали? Мой код устанавливает ширину 10, если ширина после автоподбора будет меньше 10.{/post}{/quote}  
 
Пробовал. Не всегда нужна ширина 10.  
Дело в том, что таблица широкая (выслать не могу), каждый пустой мм вырезается.  
 
Так как данные всегда примерно одного порядка, то особым макросом я жёстко устанавливаю ширину своих 150 столбцов. Но бывает исключение, когда чилсло в ячейке на 2 порядка больше и тогда отображается число типа 1Е+05. Я хочу, что в таком случае столбец расширился ровно на столько, что число будет отображаться корректно.
 
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Len(Target.Value) > 5 Then Columns("A:A").EntireColumn.AutoFit  
End Sub
Живи и дай жить..
 
точнее  
 
Target.EntireColumn.AutoFit
Живи и дай жить..
 
Вот маленький примерчик, выбирайте
Страницы: 1
Читают тему
Наверх