2009-04-30 7 views
1

Momentan ist dieses Makro so eingerichtet, dass, wenn Spalte G "Last Term" und "Okay" oder "Okay" und "Stay" nebeneinander hat, 07a in derselben Zeile in Spalte I eingetragen wird. Ich möchte diesen Code so ändern, dass wenn Spalte G "Letzter Begriff" enthält und Spalte K "Okay" und "Ende" oder "Okay" und "Bleib" in beliebiger Kombination oder in beliebiger Reihenfolge enthält, möglicherweise mit anderen Wörtern dazwischen , bevor oder hinter ihnen, solange diese zwei verschiedenen Kombinationen vorhanden sind, wird 07a in die Spalte I in der gleichen Reihe eingetragen.Macro Plug in

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 

End Sub

Antwort

1

den folgenden Code Versuchen:

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 

Für jede Schleife, las ich die Textzeichenfolge in Spalte K. Sie wird in Großbuchstaben formatiert, um sicherzustellen, dass sowohl "End" als auch "END" behandelt werden.

+0

Vielen Dank für die Lösung, es funktioniert sehr gut –

+1

Wenn Sie die With-Anweisung verwenden, gibt es kein Problem mit dem Testen oder Festlegen der Attribute des referenzierten Objekts. Das ist so ziemlich der Zweck der With-Anweisung – barrowc

+0

@barrowc Sie haben absolut Recht. Ich habe das Hinzufügen von "With" getestet und es funktioniert auch. Ich habe meine Antwort bearbeitet, um die falsche Aussage zu entfernen. – Damien