gpt4 book ai didi

excel - 如果特定单元格的值发生变化,则仅清除单元格值发生变化的该行中的内容

转载 作者:行者123 更新时间:2023-12-03 03:17:01 25 4
gpt4 key购买 nike

我正在尝试构建一个代码,如果单元格发生更改,则仅清除该行中单元格值发生更改的内容。这是我的代码,

   Private Sub Worksheet_Change(ByVal Target As Range)

Dim KeyCells As Range

Set KeyCells = Range("I1:I209")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then

If MsgBox("ARE YOU SURE, YOU WANT TO DELETE?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
'WHAT SHOULD BE CODE TO DELETE CONTENTS FROM THAT ROW FROM WHICH CELL VALUE CHANGED
End If

End Sub

任何帮助将不胜感激。谢谢。

最佳答案

使用 Range 对象的 EntireRow 属性获取 Target 行范围:

 Target.EntireRow.ClearContents

同时只清除更改的单元格:

Target.ClearContents

如果您想清除与更改单元格相同的行中的 B 列、J 列、M 列和 Q 列至 S 中的单元格,则:

Intersect(Target.EntireRow, Range("B:D, J:M ,Q:S")).ClearContents

在所有情况下,您都应该按照 Jeeped 在他的回答中显示的方式对待上述代码,即:

  • 通过将清除代码包含在 Application.EnableEvents = FalseApplication 之间,确保清除不会在无限循环中触发 Worksheet_Change 事件。 EnableEvents = True

  • 通过在 之前放置 On Error GoTo safe_exit 语句,确保任何可能的错误不会阻止表单到达 Application.EnableEvents = True 语句Application.EnableEvents = False 并在 safe_exit: 语句之后移动 Application.EnableEvents = True

关于excel - 如果特定单元格的值发生变化,则仅清除单元格值发生变化的该行中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52923029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com