Excel 中的自动列宽

Excel 中的自动列宽

在 Word 2010 中,表格列有一个“自动调整”功能,可使列自动调整为适合其内容的宽度。如何在 Excel 中获得相同的效果?

我可以双击列边框以自动将宽度设置为当前内容。更有效率的是,我可以Ctrl+A两次选择所有单元格,然后双击任意分隔符,这将自动展开所有列。

但每当我更改单元格内容时,单元格大小都不会重新调整。如果我在单元格中输入大量文本,该列不会自行拉伸,如果我删除一些长文本,它也不会缩小。我不得不一遍又一遍地选择全部,自动调整宽度。

我希望列自动对齐到合适的宽度。在 Excel 2010 或更高版本中可以实现吗?

答案1

启用宏:

Press Alt + 11

右键单击您想要自动调整的工作簿,然后在编辑器窗口的第一个下拉菜单中选择工作簿,在第二个下拉菜单中选择工作表更改。

现在在新函数中写入:

Columns().AutoFit

所以你的代码看起来应该是这样的:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Columns().AutoFit
End Sub

答案2

自动方法:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _ 
 ByVal Target As Range) 
 Dim actCol, curCol 
 actCol = Target.Column 
 If actCol > 52 Then 
 curCol = Chr(Int((actCol - 1) / 52) + 64) & _ 
 Chr(Int((actCol - 27) / 26) + 64) & _ 
 Chr(Int((actCol - 27) Mod 26) + 65) 
 ElseIf actCol > 26 Then 
 curCol = Chr(Int((actCol - 1) / 26) + 64) & _ 
 Chr(Int((actCol - 1) Mod 26) + 65) 
 Else 
 curCol = Chr(actCol + 64) 
 End If 
 Columns(curCol & ":" & curCol).AutoFit 
 End Sub 
  1. 复制以上代码
  2. 打开工作簿后,按 ALT + F11(功能键 F11)
  3. 双击左上象限的 Microsoft Excel VBA 项目对象中的“THIS WORKBOOK”。
  4. 将事件处理程序粘贴到右侧的白色编辑区域(在区域内单击鼠标右键,然后选择“粘贴”)。
  5. 关闭 VBE(带白色“x”的红色按钮--右上角)。
  6. 保存工作簿。
  7. 在工作簿的任意工作表中的任意列中输入数据,如果超出列宽,则一旦您选择不同列中的单元格,列将自动调整。

找到此信息这里

替代方法:(非自动)

1. 选择要更改的一列或多列。

2.在“开始”选项卡的“单元格”组中,单击“格式”。

“开始”选项卡上的“单元格”组

3. 在单元格大小下,单击自动调整列宽。

在此处输入图片描述

Microsoft 知识库链接

相关内容