Решение зависит от того, как данные вводятся в ячейки. Ниже приведено, с чего можно начать:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Cells.Columns.AutoFit
End Sub
Или повлиять на один лист - например, в макросе - вы можете изменить его на передачучерез номер листа / имя
Sub SetColWidth()
Sheets(1).Columns.AutoFit
End Sub
или пройти через ВСЕ листы и установить их все сразу:
Sub SetColWidthAllSheets()
Dim s As Worksheet
Application.ScreenUpdating = False
For Each s In Sheets
s.Columns.AutoFit
Next
Application.ScreenUpdating = True
End Sub
Надеюсь, это поможет
РЕДАКТИРОВАТЬ: ДобавленоScreenUpdating к приведенному выше коду.