首页 文章

宏插件

提问于
浏览
1

目前这个宏被设置为如果列G具有“Last Term”和“Okay”或“Okay”和“Stay”彼此相邻,则07a将被输入到列I中的同一行 . 我想修改此代码,以便如果列G包含“最后一个术语”,并且列K包含任何组合或任何顺序的“好”和“结束”或“好”和“停留”,可能与它们之间,之前或之后的其他单词只要存在这两种不同的组合,则07a将进入同一行的第I列 .

Sub Plugin()Dim nRow As Long Dim iRow As Long

nRow = ActiveSheet.Cells(Rows.Count, "G").End(xlUp).Row

For iRow = 1 To nRow
    With Cells(iRow, "G")
        If .Text Like "Okay*" Or .Text Like "End*" Then
            Cells(iRow, "I") = "07a"
        If .Text Like "Okay*" Or .Text Like "Stay*" Then
            Cells(iRow, "I") = "07a"
        End If
    End With
Next iRow

结束子

1 回答

  • 1

    请尝试以下代码:

    Sub Plugin()
    Dim nRow As Long
    Dim iRow As Long
    Dim KUpperText As String
    
    nRow = ActiveSheet.Cells(Rows.Count, "G").End(xlUp).Row
    
    For iRow = 1 To nRow
        KUpperText = UCase(Cells(iRow, "K").Text)
        If UCase(Cells(iRow, "G").Text) Like UCase("Last Term*") Then
            If ((KUpperText Like "*END*" And KUpperText Like "*OKAY*") _
             Or (KUpperText Like "*STAY*" And KUpperText Like "*OKAY*")) Then
                Cells(iRow, "I") = "07a"
            End If
        End If
    Next iRow
    End Sub
    

    对于每个循环,我读取K列中的文本字符串 . 它以大写形式格式化,以确保例如处理“结束”和“结束” .

相关问题