2016-06-10 58 views
0

我想轉一個IF式進VBA的代碼:在列「Q」VBA-如果條件滿足,放置所需的文本在下一列

我有「字母數字字符串255最大字符」附註基於描述 我有一個空白列「R」

公式在「R2」

=IF(ISNUMBER(SEARCH("sc",Q2)),"Service Call","") 

我有39,000行與要做到這一點,這就是爲什麼我想在VBA嘗試。

如果我需要一個不同的實例,代碼是什麼?

=IF(ISNUMBER(SEARCH("sp",Q2)),"Springs","") **Multiple conditions for ... 

=IF(ISNUMBER(SEARCH("Amarr",Q2)),"Door","") **Multiple conditions for ... 
+1

使用變體數組。 – Jeeped

回答

0

下面的代碼應該做你想做的。

Sub ColQtoColR() 
Dim FirstRow, LastRow, RowCount As Long 
Dim GCell As Range 

FirstRow = 2 
LastRow = 39000 
For RowCount = FirstRow To LastRow 
Set GCell = Cells(RowCount, 17) 
    If InStr(GCell, "sc") = 1 Then 
     GCell.Offset(0, 1).Value = "Service Call" 
    ElseIf InStr(GCell, "sp") = 1 Then 
     GCell.Offset(0, 1).Value = "Springs" 
    ElseIf InStr(GCell, "Amarr") = 1 Then 
     GCell.Offset(0, 1).Value = "Door" 
    Else 
     GCell.Offset(0, 1).Value = "" 
    End If 
Next RowCount 

End Sub 

可以輕鬆地添加更多條件,並且可以更改處理的行數。我的舊筆記本電腦只需要幾秒鐘就可以運行。如果其中兩個字符串出現在Q列中的文本中,則它將匹配最後一個測試的字符串。

+0

這只是我想要的,但非常慢,我會接受它。非常感謝你。確保Col「Q」中的字符串沒有#error或停止。 –