Application.Match只能在可见单元格中找不到值

时间:2017-07-21 00:34:19

标签: vba excel-vba excel

我正在尝试使用匹配来查找已过滤列中的值。但是,即使我已经确认字符串在通过过滤器后可见,并且没有多余的空格。

证明:

enter image description here

在此部分代码之前使用AutoFilter对列进行排序。这个想法是,如果它找不到值,它将返回false。当我删除SpecialCells部分时,代码将起作用。但是,出于我的目的,我需要代码只检查过滤的值。

test = Trim(Range("H" & currentRow).Value) & Trim(Range("B" & currentRow).Value) & "C"
.Value = Not IsError(Application.Match(test, Workbooks(STRINGS_FILE).Sheets(1).Range("K1:K" & stringsLastRow).SpecialCells(xlCellTypeVisible), 0))

另外,我确保我正在查找的字符串实际上在列K中,并且stringsLastRow是该文件中的最后一个行号,因此这些不是问题。

编辑:Range.Find似乎也没有用,除非我在这里做错了。

.Value = Not IsError(Workbooks(STRINGS_FILE).Sheets(1).Range("K1:K" & stringsLastRow).SpecialCells(xlCellTypeVisible) _
            .Find(Trim(Range("H" & currentRow).Value) & Trim(Range("B" & currentRow).Value) & "C", LookAt:=xlPart, MatchCase:=False))

0 个答案:

没有答案