【问题标题】:Clearing Cell values and keeping formulas for all next rows based on a change in a cell根据单元格中的更改清除单元格值并保留所有下一行的公式
【发布时间】:2020-03-20 12:23:17
【问题描述】:

我想创建一个 VBA 代码,根据 D 列中任何单元格的更改,清除所有下一行的值但保留公式

例如:

如果我更改了 D3,我希望范围 A4:J100 只清除值但保留公式,如果我更改 D4,范围将为 A5:j100

我发现一些代码可以部分满足 y 要求,但我无法将它们组合在一起。

此代码用于清除值但保留公式

Sub RemoveConstants()

    Dim rConstants As Range

    Set rConstants = Sheet1.Range("A1:B2").SpecialCells(xlCellTypeConstants)
    rConstants.ClearContents

End Sub

此代码用于删除基于删除同一行上的单元格的单元格(并删除公式)

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

有什么想法吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    试试这个。

    Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.Count > 1 Then Exit Sub 'do nothing if multiple cells changed
    
    If Not Intersect(Target, Range("D:D")) Is Nothing Then
        Application.EnableEvents = False 'prevent an endless loop of this code
        Range("A" & Target.Row + 1 & ":J100").SpecialCells(xlCellTypeConstants).ClearContents
        Application.EnableEvents = True
    End If
    
    End Sub
    

    【讨论】:

    • 你可以做Range("D:D").clearcontents。上面的代码无论如何都会清除 D 中的常量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多