簡體   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