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

Excel VBA实现单元格跨列同步:初始代码失效及优化方案问询

Excel VBA 列同步需求与代码优化反馈

需求说明

当用户更新B列单元格时,同行N列同步相同值;更新D列时,同行O列同步相同值。

初始无效代码

最初编写的Worksheet_Change事件代码无法实现需求:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 2 Then
        ThisRow = Target.Row
        Range("N" & ThisRow).Value = Range("B" & ThisRow).Value

    End If
End Sub

优化后代码

参考相关方案修改代码后实现了多列同步,但尝试用Switch Case处理Range类型失败,现发布优化后的代码寻求反馈:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim client_B As Range, client_N As Range
Dim PO_D As Range, PO_O As Range


Set client_B = Application.Intersect(Target, Me.Columns("B"))       '检测是否修改了B列
Set PO_D = Application.Intersect(Target, Me.Columns("D"))           '检测是否修改了D列


If client_B Is Nothing = False Then                                 'B列有单元格被修改

    '遍历B列中被修改的每个单元格
    For Each client_N In client_B.Cells
        client_N.EntireRow.Columns("N").Value = client_N.Value
    Next client_N

ElseIf PO_D Is Nothing = False Then                                 'D列有单元格被修改

        '遍历D列中被修改的每个单元格
        For Each PO_O In PO_D.Cells
            PO_O.EntireRow.Columns("O").Value = PO_O.Value
        Next PO_O

End If

End Sub

内容的提问来源于stack exchange,提问作者user2741620

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:12:13