如何搜索并仅将搜索到的词复制到下一列

时间:2015-01-12 09:53:21

标签: excel excel-vba excel-formula worksheet-function vba

这段代码是复制单词'small''medium''large'它是静态的,但我有列表     列(B)中的单词用于在(D)列中搜索并且如果找到复制单词     在'E'栏

Option Explicit
Sub FindSize()

Dim c As Range, s, i As Long
s = Array("small", "medium", "large")
For Each c In Range("B2", Range("B" & Rows.Count).End(xlUp))
For i = LBound(s) To UBound(s)
If InStr(UCase(c), UCase(s(i))) > 0 Then
c.Offset(, 1) = UCase(s(i))
Exit For
End If
Next i
Next c 
End Sub

1 个答案:

答案 0 :(得分:0)

我不得不同意Bananas先生的看法,一个简单的公式是更好的解决方案。我会使用:

  

= TRIM(IFERROR(IF(FIND("小",LOWER(B2))> 0,"小",""), "")及IFERROR(IF(FIND("介质",低级(B2))大于0,"中   """),"")及IFERROR(IF(FIND("大",低级(B2))大于0, "大",""),""))

您要将该列复制下来。公式搜索每个文本字符串(小,中,大)返回正确的文本,末尾有空格。当B单元格不包含特定字符串时,IFERROR处理查找的#VALUE结果。然后将结果连接起来(和运算符),然后修剪额外的空格。希望这会有所帮助。