如果值存在于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
-
“删除单元格或删除里面的值” – 请澄清,因为删除单元格将意味着将剩下的左右移动 – 必须澄清)。 而不是删除,你可以设置单元格的值为空(“”)或任何其他string使用VBA,如
Range("B2").Value=""
(这里没有实际删除)。find子string(如“ABC”)在VBA中的另一个string(例如“10ABCD”)内由InStr()
函数执行,如InStr("10ABCD", "ABC")>0
,表示匹配。 您可以在循环一系列单元格的同时应用这些函数,例如与您的特定任务相关的Range("B1:E58")
,并累计每个单元格的结果.InStr():非零将指示现有匹配(一个或多个)为testing的细胞(“A1”,然后“A2”等)。 -
使用工作表函数可以完成相同的任务,并将其展开为整个列“E”。
问候,