You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:36:02