【发布时间】:2018-06-20 22:07:09
【问题描述】:
我编写了下面的代码,仅当 B 列相应行中的单元格值更改为特定列表/范围 (B118:B124) 的一部分时,才清除 D 列中的单元格。如果我将 B 中的单元格更改为不属于该列表的任何值,则 D 中相应行中的单元格将不会清除(这就是我想要的)。
下面的代码工作正常,除了,例如,如果我想同时删除 B 列中的 5 个(相邻)单元格,我会收到运行时错误 13。如果我在第一个输入新值也是如此删除/空白单元格,然后尝试将其自动填充到其余已删除/空白单元格中。基本上,如果我想同时更改 B 中的多个单元格(自动填充,...),下面的代码似乎不起作用。如果我一次只删除/更改一个单元格(在 B 中),它工作得很好。任何帮助将不胜感激。谢谢。
Private Sub Worksheet_Change (ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
If Application.WorksheetFunction.CountIf(Range("B118:B124"), Target) Then
Range("D" & Target.Row).ClearContents
End If
End If
End Sub
【问题讨论】:
-
顺便说一下,出现错误消息时突出显示的行是:“If Application.WorksheetFunction.Countif(Range("B118:B124"), Target) Then”
-
嗨 urdearboy,上面代码中唯一缺少的是:Private Sub Worksheet_Change(ByVal Target As Range)。这显然是第一行代码。其他一切都如上所示。谢谢
-
当我尝试同时更改 B 中的多个单元格时,知道什么可能导致运行时错误吗?
-
欢迎来到 Stack Overflow!标准的网站风格是更新您的问题,而不是澄清 cmets。祝你好运!