这段代码是复制单词'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
答案 0 :(得分:0)
我不得不同意Bananas先生的看法,一个简单的公式是更好的解决方案。我会使用:
= TRIM(IFERROR(IF(FIND("小",LOWER(B2))> 0,"小",""), "")及IFERROR(IF(FIND("介质",低级(B2))大于0,"中 """),"")及IFERROR(IF(FIND("大",低级(B2))大于0, "大",""),""))
您要将该列复制下来。公式搜索每个文本字符串(小,中,大)返回正确的文本,末尾有空格。当B单元格不包含特定字符串时,IFERROR处理查找的#VALUE结果。然后将结果连接起来(和运算符),然后修剪额外的空格。希望这会有所帮助。