![Excel - 在列中连续自动调整,而无需每次都格式化](https://linux22.com/image/1605375/Excel%20-%20%E5%9C%A8%E5%88%97%E4%B8%AD%E8%BF%9E%E7%BB%AD%E8%87%AA%E5%8A%A8%E8%B0%83%E6%95%B4%EF%BC%8C%E8%80%8C%E6%97%A0%E9%9C%80%E6%AF%8F%E6%AC%A1%E9%83%BD%E6%A0%BC%E5%BC%8F%E5%8C%96.png)
我已经从选择列表中构建了一个关联列表选项,并希望列能够自动适应,而无需格式化以自动适应每个新选择。截至目前,每次进行选择时,我都必须格式化该单元格。
答案1
要执行一次自动调整,可在功能区主页窗格的单元格组中执行此操作 格式 > 自动调整列宽。
要在用户输入 时自动调整一个或多个列Enter,需要使用 VBA 宏,如下所示。电子表格文件必须以.xlsm
(非.xlsx
)结尾,如果需要,请执行文件 > 另存为格式为“Excel 启用宏的工作簿 (*.xlsm)”。
- 打开
.xlsm
工作表 - 点击 “开发人员”选项卡
- 单击“Visual Basic”
- 在打开的 Microsoft Visual Basic 窗口中,双击左侧的
ThisWorkbook
- 在右上角,选择“工作簿”而不是“(常规)”,选择“SheetChange”而不是“打开”,以创建两个子程序(或未
Workbook_Open
使用并可删除) 在例程中输入一行
Workbook_SheetChange
,使例程看起来像:要自动调整工作簿中的所有列:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Columns().AutoFit End Sub
例如,要自动调整特定列,
A
请将代码编写为
Columns("A").AutoFit
或Columns(1).Autofit
- 要自动调整列范围,请写入
Columns("A:E").AutoFit
按Ctrl+S保存电子表格,然后 按Alt+Q关闭 VBA 编辑器并返回 Excel。