这是我之前提出的问题的更新。 这一次,我在特定列中添加了一个条件。 因此,此代码根据2个单独列上的多个条件替换单元格。 我的代码正在做的是它将在Col B上查找ABC或DEF,如果它在Col F上显示XXX,它将用YYY替换它。我编写了下面的代码,但它对第二个标准(DEF)没有任何作用
提前感谢您的建议!
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
下一步
答案 0 :(得分:1)
您未正确输入"或者"标准,正如@ScottCraner所说,你并没有将替代限制在可见细胞中。
以这种方式尝试:
sht.UsedRange.AutoFilter Field:=2, Criteria1:="ABC", Operator:=xlOr, Criteria2:="DEF"
sht.UsedRange.Columns("F").SpecialCells(xlCellTypeVisible).Replace ...
P.S。好的,我注意Replace
自动对可见单元格起作用,但最好是在代码中显式。