Я обычно стараюсь избегать VBA в Excel, но было бы удобно быть в состоянии напечатать текст в клетку, и иметь ее колонку становятся более широкими или более узкими, чтобы приспособить текст, остающийся, поскольку он введен или удален.
Это подверглось бы, конечно, к длинам текста в других клетках в колонке.
'Автоподгонка, как Вы печатаете', я предполагаю Вас, могла бы назвать его.
Есть ли легкий способ сделать это в подходящем укладчике?
Я не уверен, есть ли способ сделать это, пока вы печатаете. Я думаю, что Excel обычно протягивает вид на ячейку, чтобы отобразить весь текст, прежде чем он пожаровал событие Worksheet_Change.
Этот код будет изменить размер столбца после того, как вы изменились и переместили цель на новый диапазон. Разместите его в модуль рабочего листа.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nextTarget As Range
Set nextTarget = Range(Selection.Address) 'store the next range the user selects
Target.Columns.Select 'autofit requires columns to be selected
Target.Columns.AutoFit
nextTarget.Select
End Sub
Если вы просто хотите сделать это для определенного столбца, вам нужно будет проверить целевой столбец, как это:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nextTarget As Range
Set nextTarget = Range(Selection.Address) 'store the next range the user selects
If Target.Column = 1 Then
Target.Columns.Select 'autofit requires columns to be selected
Target.Columns.AutoFit
nextTarget.Select
End If
End Sub