查找未找到第二行中第一个出现的文本

时间:2019-04-23 07:33:06

标签: excel vba

这是我的Excel数据

enter image description here

我正在尝试在第1行和第2行中查找单元格数据

arrCols = Array("APPLE", "ORANGE")
With Sheet1
    For i = LBound(arrCols) To UBound(arrCols)
        Set colHeader = .Rows(1).Find(arrCols(i), , xlValues, xlWhole, xlByColumns, xlNext, False)
        Debug.Print arrCols(i) & "=" & colHeader.Address
        Set colDiff = .Rows(2).Find("test", , xlValues, xlWhole, xlByColumns, xlNext, False)
        Debug.Print "test =" & colDiff.Address
    Next
End With

这是当前输出

APPLE=$A$1
test =$D$2
ORANGE=$D$1
test =$D$2

如您所见,在第2行中,Excel找不到第一次出现的搜索数据。我在做错什么,如何获得第一个“测试”地址?

编辑-即使我注释掉循环并找到第1行,第2行的.Find仍然可以正常工作。

预期产量

APPLE=$A$1
test =$A$2
ORANGE=$D$1
test =$D$2

2 个答案:

答案 0 :(得分:1)

这是对代码的修改,应该可以为您提供所需的输出。

我在10方法中使用了After选项。

Find

答案 1 :(得分:0)

这是因为循环将在它首先找到“测试”的位置的整个范围内运行,因此只会输出最后一次出现的结果。如果您不希望首次打印该项目,则可以在第一次找到该项目时退出循环。