-1

修正済み: user3964075のコメントを確認してください

以下の簡単なコードのヘルプが必要です。基本的には、検索する行を指定できる vlookup の別のバージョンです。

asda(fval, rng, fcol, rcol)

fvalはユーザーが探しているものです

rngは範囲です

fcolは vlookup のデフォルトで 1 に設定されており、ユーザーは検索の基準として使用する列を選択できるようになりました

rcolは、一致が見つかった場合に返される列です

以下のコードを参照してください。

Function asda(fval As Range, rng As Range, fCol As Integer, rCol As Integer)

    Dim row As Variant

    For Each row In rng.Rows
        If fval.Value = rng.Columns(fCol).Rows(row).Value Then
            result = rng.Columns(rCol).Rows(row).Value
            GoTo found
        End If
    Next

found:
    asda = result

End Function

問題: 機能しません。理由がわかりません。他の人のコードを使用したいので、自分のコードから始めて修正したいと思います。

今後これを読む人のためにコードを修正しました:

Function asda(fval As Range, rng As Range, fCol As Integer, rCol As Integer)
Dim row As Variant
Dim rowc As Integer

rowc = 1
For Each row In rng.Rows
    If fval.Value = rng.Cells(rowc, fCol).Value Then
        result = rng.Cells(rowc, rCol).Value
        Exit For
    End If
    rowc = rowc + 1
Next

asda= result

終了機能

4

1 に答える 1