繁体   English   中英

在另一个工作表中查找单元格值

[英]Find cell value in another sheet

我必须使用Excel,然后使用vba在其中一个中获取一个值,在另一个中搜索它,然后在第一张表中返回一个对应的值。

鉴于工作表1:

在此处输入图片说明

我想在另一张纸上搜索我在A5中插入的字符串:

工作表2:

在此处输入图片说明

一旦找到匹配项(在本例中为A2),我将获取“值”(在本例中为D2)并将其报告到Sheet1的单元格B5中。

那就是我尝试过的:

Dim rgFound As Range
Dim defVal As Range
Dim currParam As Range
Dim currParamDict As Range

For Each defVal In Range("B:B")

    Set currParam = Cells(Range(defVal).Row, Range(defVal).Column - 1)
    If currParam Is Nothing Then
        Debug.Print "Name was not found."        
    End If

    Set rgFound = Worksheets("Sheet2").Range("A:A").Find(currParam.value)
    If rgFound Is Nothing Then
        Debug.Print "Name was not found."
    Else
        Set currParamDict = Cells(Range(rgFound).Row, Range(rgFound).Column + 3)
        defVal.value = currParamDict.value
    End If
Next defVal

这显然是错误的,因为编译器在此行给我一个关于Range的错误:

Set currParam = Cells(Range(defVal).Row, Range(defVal).Column - 1)

尝试这个

Sub x()

Dim rgFound As Range
Dim defVal As Range
Dim currParam As Range
Dim currParamDict As Range

With Worksheets("Sheet1")
    For Each defVal In .Range("A2", .Range("A" & Rows.Count).End(xlUp)).Offset(, 1)
        Set currParam = defVal.Offset(, -1)
        If Len(currParam.Value) > 0 Then
            Set rgFound = Worksheets("Sheet2").Range("A:A").Find(currParam.Value)
            If rgFound Is Nothing Then
                Debug.Print "Name was not found."
            Else
                Set currParamDict = rgFound.Offset(, 3)
                defVal.Value = currParamDict.Value
            End If
        End If
    Next defVal
End With

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM