首页 > 解决方案 > 搜索字符串,如果找到则粘贴值 - 然后循环

问题描述

我正在尝试构建一个宏,该宏在列中搜索两个字符串(“提示费”或“非交易”。如果找到它,则将“Y”值粘贴到另一列中。如果没有,则它粘贴“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

标签: excelvba

解决方案


仍然可以在 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

推荐阅读