Note: The other languages of the website are Google-translated. Back to English

如果另一个单元格的值在Excel中发生更改,如何清除指定的单元格内容?

假设如果另一个单元格的值已更改,则要清除指定单元格内容的范围,该怎么办? 这篇文章将向您展示解决此问题的方法。

如果另一个单元格的值随VBA代码而变化,则清除指定的单元格内容


如果另一个单元格的值随VBA代码而变化,则清除指定的单元格内容

如下面的屏幕截图所示,当更改单元格A2中的值时,单元格C1:C3中的内容将自动清除。 请执行以下操作。

1.在工作表中,您将根据其他单元格更改清除单元格内容,右键单击工作表选项卡,然后选择 查看代码 从上下文菜单中。 看截图:

2.在开幕 Microsoft Visual Basic应用程序 窗口,将下面的VBA代码复制并粘贴到“代码”窗口中。

VBA代码:如果另一个单元格的值更改,则清除指定的单元格内容

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("C1:C3").ClearContents
    End If
End Sub

备注:在代码中,B2是您要根据其清除单元格内容的单元格,C1:C3是您要从其清除内容的范围。 请根据需要更改它们。

3。 按 其他 + Q 关闭键 Microsoft Visual Basic应用程序 窗口。

然后,您可以看到当单元格A1中的值更改时,C3:C2范围内的内容将自动清除,如下图所示。


相关文章:


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (38)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
如果另一个更改有效,则清除单元格的代码效果很好!!!! 但是我需要它以相反的方式工作.....该代码是如何编写的?


谢谢你的帮助
该评论由网站上的主持人最小化
亲爱的斯科特,
反过来工作是什么意思? 当手动清除某些单元格(C1:C3)的内容时,自动清除单元格A2的内容?
该评论由网站上的主持人最小化
您好,这仅适用于固定源单元(A2),如何动态地执行此操作,例如源是可变单元? 我试着写
A=activecell.row
If Not Intersect(Target, Range("A"& A)) 什么都不是
范围(“C1:C3”)。清除内容
结束如果

这应该对activecell(即选择)起作用,但不起作用
谢谢
该评论由网站上的主持人最小化
美好的一天,
请尝试以下 VBA 代码。 感谢您的评论。

私人子Worksheet_Change(按目标的ByVal目标)
If (Not Intersect(Target, Rows(1)) Is Nothing) And (Target.Count = 1) 然后
范围(“C1:C3”)。清除内容
结束如果
END SUB
该评论由网站上的主持人最小化
嗨,我正在寻找一种在某个单元格中输入“x”时清除一系列数据单元格的方法。 我使用了上面的公式,它对那一行非常有效。 问题是我需要将它扩展到多行。 例如,如果在“D13”中输入“x”,我需要清除 J:13 - v:13 范围。 如果在“D14”中输入 x,我也需要发生这种情况,因为我需要清除范围 d:14 - v:14。 有没有办法这样写? 谢谢你的帮助!
该评论由网站上的主持人最小化
嗨,这不适合我的。 没有任何变化,但也没有错误。 有小费吗?
该评论由网站上的主持人最小化
美好的一天,
带来不便敬请谅解。 你会提供你的Office版本吗? 谢谢你的评论。
该评论由网站上的主持人最小化
在 A2 的情况下,我如何引用不同工作表中的单元格?
该评论由网站上的主持人最小化
没有VBA有什么办法吗?
该评论由网站上的主持人最小化
嗨,索尼娅,
除了 VBA,没有找到任何解决方案。 谢谢你的评论。
该评论由网站上的主持人最小化
如果我有一个表格并且需要多个空格,我应该使用什么 VBA 代码?

我的桌子是 B3:E7。 如果 B 列中的内容被清除,那么我希望为该行清除 C、D、E 列中的数据。 我在第 3 行有以下内容,但希望在第 4,5,6、7、XNUMX 和 XNUMX 行中相同。

私人子Worksheet_Change(按目标的ByVal目标)
If Not Intersect(Target, Range("B3")) 什么都不是
范围(“C3:E3”)。清除内容
结束如果
END SUB
该评论由网站上的主持人最小化
双击清除任何单元格的内容怎么样?
该评论由网站上的主持人最小化
嗨,你如何在示例中为多个单元格重复代码,即如果我删除单元格a4和a5的内容,我想分别清除b4:z4和b5:z5的内容,我需要这样做对于具有 1000 行的大型电子表格,任何建议将不胜感激
该评论由网站上的主持人最小化
嗨,朱利安,我也在寻找相同的方法,如果您对此有任何解决方案,请告诉我。
该评论由网站上的主持人最小化
请相应地更改数字
将 i 调暗为整数
私人子Worksheet_Change(按目标的ByVal目标)
对于i = 2到10
查找范围 = "A" & 我
内容范围 = "B" & i & ":" & "C" & i
If Not Intersect(Target, Range(lookrange)) 则什么都不是
范围(内容范围)。清除内容
结束如果
接下来,我
END SUB
该评论由网站上的主持人最小化
嗨 sagarsrinivas0312,非常感谢您提供此代码。 我已经为这个解决方案寻找了一个星期!
该评论由网站上的主持人最小化
这太好了,谢谢。 我如何多次执行此操作...所以根据不同的列清除其他单元格?
该评论由网站上的主持人最小化
riusciresti a scrivermelo in modo che debba solo fare copia ed incolla?
非 riesco veramente a farlo funzionare

GRAZIE米尔
该评论由网站上的主持人最小化
嗨,
如果在名为“已售”的工作表的 C 列中找到空白单元格,并且宏从名为“发票”的工作表运行,我正在尝试清除 A 列和 B 列的额外单元格。

我从帮助站点获得了以下代码,但没有得到我想要的。
请帮帮我。 截图附上我想要的。

总和清除()

暗淡
对于 g = 2 到 ActiveSheet.UsedRange.Rows.Count
If Cells(g, "C").Value = "" Then
单元格(g,“A”).ClearContents
单元格(g,“B”).ClearContents

结束如果
下一页
结束总和
该评论由网站上的主持人最小化
如果指定的单元格内容由另一个工作表上的单元格控制,这似乎不起作用? 有解决办法吗?
使用您的单元格名称的示例
如果单元格“A2”是 (=sheet1[@[a5]] 并且此数字在工作表 1 上更改,则更改 A2 的内容它不会清除指定范围内的内容。
该评论由网站上的主持人最小化
私有子 Worksheet_Activate()
如果 Range("S2") <> Range("A2").Value 那么
范围(“S2”)=范围(“A2”).值
Range("d2:g2").ClearContents
结束如果
'S2' 可以替换为数据范围之外的任何单元格。 VBA 所做的是自动更新“S2”的数据,然后更新的数据控制您指定的范围以及它是否被清除。
这是我发现在工作表内外使用引用单元格时成功执行此操作的唯一方法。
该评论由网站上的主持人最小化
不完全是我需要的,但到达那里。我有一个空单元格 E3。我在 B3 中有数据。当我将数据放入 E3 时,如果它与 B3 相同,则 B3 被删除。希望你能帮助我。
该评论由网站上的主持人最小化
如果触发单元格包含特定数字,是否可以清除指定的单元格内容? 假设,如果单元格 A1 = 1,则清除单元格 A2:A4?
该评论由网站上的主持人最小化
卓悦兜售世界报,

Besoin d'aide, j'ai besoin d'effacer le contenu d'une cellule de la Colonne "I" si la cellule (de la meme ligne) de la colone "O" =0, sur environ 2000 lignes avec des titres tout le 10 lignes 环境。
该评论由网站上的主持人最小化
你好,

只是寻找一种简单的方法,如果“B2”从数据验证列表中选择“是”,则单元格 B3 将清除它的数据......反之亦然:如果“B3”从数据验证列表,单元格“B2”将清除它的数据。

基本上 B2 or B3 可以说 ”“(来自数据验证列表) 但从不同时, 一个应该清除另一个.
该评论由网站上的主持人最小化
嗨,杰夫,
下面的 VBA 代码可以帮你一个忙。 请试一试。
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220721
If Target.Cells.Count > 1 Then Exit Sub
    If (Not Intersect(Target, Range("B2")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B3").ClearContents
        Else
        If (Not Intersect(Target, Range("B3")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B2").ClearContents
    End If
    End If
End Sub
该评论由网站上的主持人最小化
Buongiorno, avrei bisogno di cancellare una serie di caselle (un rettangolo, quindi su più righe e Colonne) 在 base al valore di un'altra cella。 es: se la cella A2 è Superiore di 12, il quadrato con vertici opposto C2 : F4 venga cancellato。
非常感谢
该评论由网站上的主持人最小化
嗨彼得罗,
对不起,我不太明白你的问题。 您介意上传数据的屏幕截图吗?
该评论由网站上的主持人最小化
Помогите с решением, VBA не знаю。 Мне нужно при изменении ячейки удалить данные из другой и чтобы это дейстовало на весь столбец。
Меняю А2 удаляется из G2, меняю А3 удаляется из G3, меняю A6 удаляется из G6 и т.д。

私人子Worksheet_Change(按目标的ByVal目标)
If Not Intersect(Target, Range("A2")) 什么都不是
范围(“G2”)。清除内容
结束如果
END SUB


Данный код хорош для одной ячейки, а как его размножить на все ячейки столбца?
该评论由网站上的主持人最小化
嗨Наталья,
以下 VBA 代码可以帮助您解决问题。 请试一试。

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221013
    Dim xRight As Range
    Dim KeyCells As Range
    Set KeyCells = Range("A:A")
    Set xRight = Target.Offset(0, 6)
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        xRight.ClearContents
    End If
End Sub
该评论由网站上的主持人最小化
你好,

祖朋克 3。
Die Taste "Andere" Finde ich nicht auf meiner Windows Tastatur。 Ich Habe Strg, Alt, Tab... allerdings die Taste Andere gibt es auf meiner Tastatur leider nicht。

利本·格鲁斯·马蒂亚斯
该评论由网站上的主持人最小化
嗨马蒂亚斯,
如果在键盘上找不到对应的键。 您只需单击 优惠 按钮在 Microsoft Visual Basic 应用程序窗口 保存代码,然后手动关闭此窗口。
该评论由网站上的主持人最小化
你好,
下面的代码像宣传的那样工作,但是会出现以下问题:

首先,在调整目标表的大小时,所有表数据都被清除,除第 1 列标题之外的所有表头都被重新标记为“Column1、Column2 等。并且工作簿自动保存其自身并终止撤消。

其次,在删除任何表行时,我收到“运行时错误 1004(对象范围的方法偏移失败。


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F3:F500")) Is Nothing Then
     Target.Offset(0, 1).ClearContents
    ElseIf Not Intersect(Target, Range("G3:G500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
        Target.Offset(0, 2).ClearContents
    ElseIf Not Intersect(Target, Range("H3:H500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
    End If
End Sub


知道什么可能是错的吗?

提前感谢!
该评论由网站上的主持人最小化
Hola, estoy trabajando una base de datos en OFFICE ONLINE a traves de ONEDRIVE, quiero que al PONER "CANCELADO" o "NOSHOW" elimine el contenido de la fila seleccionada.
该评论由网站上的主持人最小化
嗨,天使,
VBA 代码在 Office Online 中不起作用。 带来不便敬请谅解。
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护