如何修改VBA代码实现仅选中A、E列单元格时自动适配列宽
修改后的VBA代码如下
仅新增了列号判断逻辑,即可让自动适配功能仅对A列(列号1)和E列(列号5)生效:
Dim prevWidth As Long Dim prevCol As Long Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' 非A列、E列选中时直接终止程序 If Target.Column <> 1 And Target.Column <> 5 Then ' 若需要选中其他列时自动恢复之前A/E列的宽度,可取消注释下方两行 ' If prevWidth <> 0 And prevCol <> 0 Then ' Columns(prevCol).ColumnWidth = prevWidth ' End If Exit Sub End If ' 恢复上一次选中的A/E列的原始宽度 If prevWidth <> 0 And prevCol <> 0 Then Columns(prevCol).ColumnWidth = prevWidth End If On Error Resume Next ' 记录当前选中列的原始宽度,自动适配内容 prevWidth = Target.ColumnWidth prevCol = Target.Column Columns(prevCol).EntireColumn.AutoFit On Error GoTo 0 End Sub
说明
- 代码默认逻辑:仅当选中A列或E列的单元格时,才会触发自动适配列宽的效果,选中其他列时不会修改任何列的宽度
- 若需要实现「选中其他列时自动把之前展开的A/E列恢复为原始宽度」的效果,取消注释代码中对应位置的两行即可。
内容的提问来源于stack exchange,提问作者Oleg0341
相关产品推荐
相关产品推荐

