Note: The other languages of the website are Google-translated. Back to English
Log in  \/ 
Register  \/ 


How to auto fit column width in Excel?

In Excel, you can adjust the column width to fit the cell contents quickly by using the AutoFit Column Width feature. Sometimes, you would like the column width automatically update based on the longest text in that column, that is to say, when input some long text string in cell, the column width will be resized automatically to fit the contents’ length. Is this possible to deal with it in Excel?

Auto fit columns width with VBA code

Auto fit columns width with shortcut keys

Office Tab Enable Tabbed Editing and Browsing in Office, and Make Your Work Much Easier...
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
  • Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
  • More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
  • Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
  • Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
  • Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
  • Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
  • More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.

arrow blue right bubble Auto fit columns width with VBA code

It seems to make the column width automatically updated with the cell contents’ length is an interesting trick, you can using the following VBA code to finish it.

1. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.

2. Then double click ThisWorkbook in the VBA Project objects in the left pane to open a blank module, and then copy and paste following VBA code into the Module:

VBA code: auto fit column with in workbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Update 20141127
Dim xCol, xoutCol
xCol = Target.Column
If xCol > 52 Then
xoutCol = Chr(Int((xCol - 1) / 52) + 64) & _
Chr(Int((xCol - 27) / 26) + 64) & _
Chr(Int((xCol - 27) Mod 26) + 65)
ElseIf xCol > 26 Then
xoutCol = Chr(Int((xCol - 1) / 26) + 64) & _
Chr(Int((xCol - 1) Mod 26) + 65)
xoutCol = Chr(xCol + 64)
End If
Columns(xoutCol & ":" & xoutCol).AutoFit
End Sub


3. Then save and close this code, and now, when you enter long text into a cell, the column width will adjust to fit the content automatically.

arrow blue right bubble Auto fit columns width with shortcut keys

If you have multiple columns with part of cell contents are hidden as following screenshot shown, you want to resize the column widths at once to fit their contents. The following shortcut keys may help you.


1. Select the data range which you want to resize the column width.

2. Hold down Alt key and press H + O + I, and now your column widths have been auto fitted to their contents immediately. See screenshot:


Note: If you are using Excel 2003 and earlier version, you need to use these shortcut keys: ALT + O + C + A.

Related articles:

How to auto fit row height of merged cells in Excel?

How to resize row height or column width to fit text in Excel?

The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom


Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Bakrudin · 2 years ago
    saya tertarik dengan code VB yang anda terapkan tentang Cara mengisi kolom excel dengan VBA, jika pertanyaannya begini Bagaimana cara mengisi kolom dan baris tertentu di excel dnegan VBA?
    jadi yang terisi adalah kolom dan barisnya secara otomatis? mohon jawabannya..