2015-01-12 43 views
0

此代码是复制单词'小''中''大'它是静态的,但我有名单 列(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

我会用香蕉先生同意,一个简单的公式是一个更好的解决方案。关闭我的头顶,我会用:

= TRIM(IFERROR(IF(FIND( “小”,LOWER(B2))> 0, “小”, “”), “”)& IFERROR (IF(FIND(“medium”,LOWER(B2))> 0,“Medium ”,“”),“”)& IFERROR “)”“),”“))

你会在列中复制哪一个。公式搜索每个文本字符串(小号,中号&大)返回最后一个空格的正确文本。 IFERROR处理B单元格不包含特定字符串时查找的#VALUE结果。然后将结果连接(&运算符),然后裁剪多余的空格。希望这可以帮助。