2017-05-22 3 views
1

Dies ist ein Update von einer vorherigen Frage, die ich hatte. Dieses Mal füge ich eine weitere Bedingung in einer bestimmten Spalte hinzu. So ersetzt dieser Code die Zelle/n basierend auf mehreren Kriterien in 2 separaten Spalten. Was mein Code tut, ist, dass er auf Col B nach ABC oder DEF sucht und wenn er XXX auf Col F zeigt, ersetzt er es durch YYY. Ich schrieb den Code unten, aber es tut nichts zum zweiten Kriterium (DEF)VBA; 1 Spalte mit mehreren Kriterien, zweite Spalte Einzelkriterien

Schätzen Sie Ihre Vorschläge im Voraus!

Dim destlist As Worksheet, y As Long 

fndList = Array("XXX") 
rplcList = Array("YYY") 

For Each sht In ActiveWorkbook.Worksheets 
sht.Cells.AutoFilter Field:=2, Criteria1:="ABC" 
sht.Cells.AutoFilter Field:=2, Criteria2:="DEF"  

'Loop through each item in Array lists and replace 
For y = LBound(fndList) To UBound(fndList) 
    sht.UsedRange.Columns("F").Replace What:=fndList(y), Replacement:=rplcList(y), _ 
     LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ 
     SearchFormat:=False, ReplaceFormat:=False 
Next y 
sht.AutoFilterMode = False 

Weiter sht

+0

Sie wissen, dass die Ersetzung alle Zellen in Spalte F, nicht nur die sichtbaren aufgrund des Filters tun wird? –

+0

Hallo Scott, nein ich wusste das nicht. Wenn ich meinen Code ausführe, ersetzt er die Zellen in Col f mit YYY, wenn ABC in Col B und XXX in Col F steht. Aber nicht wenn es DEF in Col B und XXX in Col F zeigt. – jackie

Antwort

1

Sie die Eingabe nicht korrekt ein „entweder oder“ Kriterien, und als @ScottCraner sagte, Sie waren nicht auf den Ersatz für die sichtbaren Zellen zu begrenzen.

es auf diese Weise versuchen:

sht.UsedRange.AutoFilter Field:=2, Criteria1:="ABC", Operator:=xlOr, Criteria2:="DEF" 
sht.UsedRange.Columns("F").SpecialCells(xlCellTypeVisible).Replace ... 

P. S. ok Ich bemerke, dass Replace automatisch auf die sichtbaren Zellen funktioniert, aber es ist besser, explizite im Code zu sein.

+0

@jackie ja, ein paar Ersatz werden vorgeschlagen, der Rest des Codes bleibt so wie es ist. –

+1

Hallo @ A.S.H! Danke für die Hilfe! Es funktionierte! :) – jackie

Verwandte Themen