在 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
- 复制以上代码
- 打开工作簿后,按 ALT + F11(功能键 F11)
- 双击左上象限的 Microsoft Excel VBA 项目对象中的“THIS WORKBOOK”。
- 将事件处理程序粘贴到右侧的白色编辑区域(在区域内单击鼠标右键,然后选择“粘贴”)。
- 关闭 VBE(带白色“x”的红色按钮--右上角)。
- 保存工作簿。
- 在工作簿的任意工作表中的任意列中输入数据,如果超出列宽,则一旦您选择不同列中的单元格,列将自动调整。
找到此信息这里
替代方法:(非自动)
1. 选择要更改的一列或多列。
2.在“开始”选项卡的“单元格”组中,单击“格式”。
“开始”选项卡上的“单元格”组
3. 在单元格大小下,单击自动调整列宽。