更改上一个单元格时清除单元格内容

时间:2016-12-15 04:47:42

标签: excel vba excel-vba

我对VBA并不熟悉,而且谷歌通常会尝试寻找解决方案,所以请耐心等待。

我想要达到的目的是:当列L中的单元格(在同一行中)被更改时,列M中的单元格被清除。现在我有以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "L3" Then Range("M3").ClearContents
End Sub

仅使用L3& M3,但我无法弄清楚如何将它应用于整个色谱柱(或者从技术上讲,我需要它适用于L3:L4000和M3:M4000)。有什么想法吗?提前谢谢!

3 个答案:

答案 0 :(得分:2)

您只需要获取Target的行并清除M列中的同一行

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("L:L")) Is Nothing Then
        Range("M" & Target.Row).ClearContents
    End If
End Sub

答案 1 :(得分:0)

尽可能坚持你的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Left(Target.Address(, False), 1) = "L" Then Target.Offset(, 1).ClearContents
End Sub

答案 2 :(得分:0)

为了使响应速度更快/更快,您可以使用.Column.Row属性:

If Target.Column = 12 And Target.Row >= 3 Then Target(, 2).ClearContents