macros插入

目前这个macros是这样设置的,所以如果G列有“Last Term”和“Okay”或“Okay”和“Stay”,07a将被input到第I列的同一行。我想修改这个代码,以便如果列G包含“最后期限”并且列K包含“合格”和“结束”或“合格”和“保留”,可能与其中之间,之前或之后的其他词汇只要存在这两种不同的组合,那么07a将被input到同一行中的列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 

结束小组

试试下面的代码:

 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列中的文本string。它被格式化为大写,以确保例如处理“结束”和“结束”。