我正在尝试建立一个宏,该宏在一列中搜索两个字符串(“提示费”或“非交易”。如果找到该字符串,则将“ 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
答案 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语句的工作原理: