搜索字符串,如果找到,则粘贴值-然后循环

时间:2019-04-23 14:16:44

标签: excel vba

我正在尝试建立一个宏,该宏在一列中搜索两个字符串(“提示费”或“非交易”。如果找到该字符串,则将“ Y”值粘贴到另一列中。如果没有) t然后粘贴“ N”。

我正在努力使其正常运行,并且不确定“不等于N”部分该怎么做。

仅在下面找到“提示费”的示例:

Sheets("Pipeline simplified").Select

Dim TipFee As String
Dim NonDeal As String
Dim t As Integer
Dim LastRowtip As Long
TipFee = "Tip Fee"
NonDeal = "Non-Deal"
LastRowtip = Cells(Rows.Count, "H").End(xlUp).Row


For t = 7 To LastRowtip

    If Cells(t, 8).Value = TipFee Then
    Cells(t, 30).Value = "Y"
      End If
Next t

2 个答案:

答案 0 :(得分:3)

仍然可以在VBA中使用公式,这样就无需循环。可以使用公式来搜索单元格中的文本,并且也可以不区分大小写。然后只需转换为值即可。

Dim ws As Worksheet

Set ws = ActiveWorkbook.Worksheets("Pipeline simplified")

With ws.Range("AD7:AD" & ws.Cells(ws.Rows.Count, "H").End(xlUp).Row)
    .Formula = "=IF(OR(ISNUMBER(SEARCH({""Tip Fee"",""Non-Deal""},H7))),""Y"",""N"")"
    .Value = .Value
End With

答案 1 :(得分:2)

尝试一下:

If Cells(t, 8).Value = TipFee Or Cells(t, 8).Value = NonDeal Then
    Cells(t, 30).Value = "Y"
Else
    Cells(t, 30).Value = "N"
End If

还要检查IF语句的工作原理:

  

If...Then...Else statement