求助:VBA实现点击J列对应行计算G-H并写入M3的代码优化
解决VBA点击指定单元格计算结果并写入固定单元格的问题
需求说明:点击J4:J76范围内的单元格时,计算对应行G列与H列的差值(如点击J4则计算G4-H4),并将结果写入M3单元格(覆盖原有值)。
原代码问题:提供的代码会将计算结果填充至整个M列,且仅监听J4单元格的点击,不符合需求。
修改后的代码
直接在工作表的Worksheet_SelectionChange事件中实现逻辑,无需额外宏:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' 校验选中单个单元格且在目标范围内 If Target.Count = 1 And Not Intersect(Target, Me.Range("J4:J76")) Is Nothing Then ' 计算对应行G-H的差值,写入M3 Me.Range("M3").Value = Me.Range("G" & Target.Row).Value - Me.Range("H" & Target.Row).Value End If End Sub
修改说明
- 扩大监听范围:将原代码中仅监听J4的逻辑,改为覆盖J4:J76的所有单元格
- 取消批量写入:移除了批量计算整列的宏,直接通过
Target.Row获取点击行的行号,精准计算单行差值 - 结果定向写入:直接将计算结果赋值给M3单元格,避免误填充其他行
内容的提问来源于stack exchange,提问作者Mohammad Haneef Ahmad
相关产品推荐
相关产品推荐

