如果值存在于countif中,则删除一个单元格

得到以下问题。 更有可能通过VBA代码解决,但作为VBA新手,我不知道如何。

我有下面的表格

在这里输入图像说明

我把公式放在单元格F2中,见下面,找出多余的值,最后删除它们。

IF(COUNTIF(B2:E58,A2)>0,"YAHOO","Not Present")

我的目标是自动删除这些冗余值,而不是手动删除单元格或删除其中的值。

我已经在互联网上查了一下,出来的一些解决scheme,都是关于帮助者列或者中间表,还有一些是用VBA出来的。 我曾看过助手列,但我不知道如何通过助手列自动删除我的值。

任何build议都欢迎。

提前致谢。

编辑(第1次):

感谢Don Relentless的帮助,但是我觉得我的解释还不够清楚。

具有:一列,A。在列A中查找在数组中search时存在的值B2:E58。

方法/解决scheme:使用IF(COUNTIF(B2:E58,A2)>0,"YAHOO","Not Present")来显示colmun A中的值并且也出现在数组中。

例如:对于A2,检查B2到E2,直到E58。 接下来是A3,检查B2到E2,直到E58。

想要:将数组或列中的单元格移除或放入YAHOO东西。

我希望我很清楚。 如果不给我一个留言。

如果您尝试在发生匹配时将列A中的行replace为空格或“Yahoo”,请执行以下两个步骤

1)select单元格B2:E58并将其命名为MyArray 2)运行下面的代码

 Sub ReplaceBlanks() Dim i Range("A2").Select Do While Not IsEmpty(ActiveCell) If WorksheetFunction.CountIf(Worksheets("Sheet1").Range("MyArray"), ActiveCell.Value) > 0 Then ActiveCell.Value = "" End If ActiveCell.Offset(1, 0).Select Loop End Sub 
  1. “删除单元格或删除里面的值” – 请澄清,因为删除单元格将意味着将剩下的左右移动 – 必须澄清)。 而不是删除,你可以设置单元格的值为空(“”)或任何其他string使用VBA,如Range("B2").Value="" (这里没有实际删除)。find子string(如“ABC”)在VBA中的另一个string(例如“10ABCD”)内由InStr()函数执行,如InStr("10ABCD", "ABC")>0 ,表示匹配。 您可以在循环一系列单元格的同时应用这些函数,例如与您的特定任务相关的Range("B1:E58") ,并累计每个单元格的结果.InStr():非零将指示现有匹配(一个或多个)为testing的细胞(“A1”,然后“A2”等)。

  2. 使用工作表函数可以完成相同的任务,并将其展开为整个列“E”。

问候,