首页 > 解决方案 > 获取通过遍历数组找到的单元格的单元格引用?

问题描述

我正在构建一个宏,它需要根据一列中的值查找一行,然后在该行中找到数据的开头,然后剪切该信息并将其粘贴到不同的工作表上。我遇到了第一个障碍,因为虽然我可以让我的数组遍历列并找到该值的实例,但我似乎无法获得该值的单元格引用。

我尝试使用 Range.Address 函数,但这给我带来了运行时错误 424 Object required 错误。我不知道如何获得地址。代码已经在数组中找到了值,因此它必须知道该值的存储位置。这是我到目前为止所拥有的

Dim element As Variant
Dim checker As Boolean
Dim elementAddr As String

MyArray = Range("S2:S10").Value2

For Each element In MyArray
    If element = "Completed." Then
    elementAddr = element.Address
    Worksheets("Test").Range("A1").Value = elementAddr
    Exit For
    End If
Next element

End Sub

因此,除了尝试获取引用时的错误之外,数组循环工作得很好。一旦循环在数组中找到一个显示“已完成”的单元格,我如何才能将该单元格的引用作为字符串获取?

标签: arraysexcelvba

解决方案


正如 BigBen 所说,您可以使用Match()

Dim m

With Range("S2:S10")
    m = Application.Match("Completed.",.cells, 0)
    If Not IsError(m) Then Range("A1").value = .Cells(m).Address 
End With

Find()

Dim f As Range

Set f = Range("S2:S10").Find("Completed.", lookat:=xlWhole)
If Not f Is Nothing Then Range("A1").value = f.Address 

推荐阅读