VBA获取匹配单元格的地址而不是值

时间:2017-12-11 15:21:46

标签: excel vba excel-vba

我正在尝试捕获匹配的范围/行或单元格地址。正如您在此代码段的最后一行中所看到的,匹配和关联数据正在从源表单复制到收件人表单。我已经意识到的问题是源i不一定是接收器中的正确行。

Dim FindString As String
Dim Rng As Range
    FindString = wsSource.Range("B" & i).Value
    If Trim(FindString) <> "" Then
    With wsReciever.Range("A:A") 'searches all of column A
        Set Rng = .Find(What:=FindString, _
        After:=.Cells(.Cells.Count), _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False)
        If Not Rng Is Nothing Then  'value found copy hours to Total Wk
        'Estimates
        wsSource.Range("F" & i & ":" & "NS" & i).Copy _
        wsReceiver.Range("D" & ? & ":" & "NQ" & ?)

那么是否可以在收件人表中捕获匹配的地址,以便我可以将数据粘贴到正确的行中?

TIA。

2 个答案:

答案 0 :(得分:0)

对这篇文章感到抱歉,(RTFM)我发布后立即找到答案。

你必须使用搜索的范围对象,在这种情况下Rng并在找到匹配时设置一个等于其地址的变量。

j = Rng.Address 'if you want the Cell or 
j = Rng.Row 'if you just need the row number.

答案 1 :(得分:0)

请按照上面的评论继续:

如果您希望在Address之后使用Rng.Address If Not Rng Is Nothing

如果您想获取Row号码,请使用Rng.Row