VBA 宏:生成汇总大表(或任意工作簿)全工作表列宽自适应 日期:2026-09-08 说明:打开要处理的 xlsx → Alt+F11 → 菜单“插入→模块” → 粘贴以下代码 → 关闭编辑器 → Alt+F8 运行 AutoFitAllSheets。 也可将本文件另存为 .bas,在 VBA 编辑器里“文件→导入文件”。 -------------------------------------------------------------------------------- Option Explicit ' 主宏:对全部工作表做整列列宽自适应(公式先整体重算,以显示值宽度为准) Public Sub AutoFitAllSheets() Application.ScreenUpdating = False Application.Calculation = xlCalculationAutomatic Application.CalculateFullRebuild Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Activate On Error Resume Next ' 自动适应整列宽度(隐藏行/列不影响;合并单元格内的文字不会被 Excel 自动计入) ws.Cells.EntireColumn.AutoFit On Error GoTo 0 Next ws Application.ScreenUpdating = True MsgBox "全部工作表列宽自适应完成。", vbInformation, "完成" End Sub ' 备用宏:只对“当前选中的工作表”执行自适应 Public Sub AutoFitActiveSheet() Application.ScreenUpdating = False Application.CalculateFullRebuild ActiveSheet.Cells.EntireColumn.AutoFit Application.ScreenUpdating = True MsgBox "当前表列宽自适应完成。", vbInformation, "完成" End Sub -------------------------------------------------------------------------------- 注意: 1) 运行前先全选看一遍是否有“###”溢出列;若个别列因合并标题仍偏窄,可手动拖一下该列。 2) 本宏只改列宽,不改任何数据、公式、底色与边框。 3) 建议生成后立刻运行一次,再另存为正式交付文件。