VBA-如果满足标准,则将所需文本放在下一列中

时间:2016-06-10 17:43:45

标签: excel-vba if-statement excel-formula vba excel

我想将IF公式转换为VBA代码:

我有"字母数字字符串255 max char"在列" Q"中使用基于注释的描述; 我有一个空白栏" 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 个答案:

答案 0 :(得分: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列中的文本中存在其中两个字符串,那么它将匹配最后一个测试字符串。