3

基本的に私は2つのセルを持っています。1 つは製品説明、もう 1 つは製品番号です。現在の方法では、製品の説明はデータ検証済みであり、製品番号は説明による検索です。

私がしたいのは、製品番号または製品説明に基づいて検索できるようにすることです。基本的に、ドロップダウンリストから製品番号を選択すると製品説明が検索され、ドロップダウンリストから製品説明を選択すると、品番は検索です。

これは可能ですか、それとも私はこれについて間違った方法で考えていますか?

4

1 に答える 1

0

誰も正確に答えなかった古い質問に答える...これが他の人にも役立つことを願っています。また、コード内のコメントも参照してください。

これは、循環参照を作成するため、Excel Formula & Validation では実行できません [循環反復の回数を変更できないわけではありませんが、それでも...]

VBA の方がはるかに簡単です...使用したい人のためのコードは次のとおりです..

Private Sub Worksheet_Change(ByVal Target As Range)
    Const sNumRng As String = "$A$1"
    Const sDescRng As String = "$B$1"
    '# both sListRngNum & sListRngDesc must be of the same size
    Const sListRngNum As String = "$K$1:$K$4"
    Const sListRngDesc As String = "$L$1:$L$4"

    '# EnableEvnent should be disabled first
    '# because the code will trigger it again
    '# by changing the next cell value
    Application.EnableEvents = False

    If Target.Address = sNumRng Then
       Range(sDescRng).Value = WorksheetFunction.Index(Range(sListRngDesc), _
       WorksheetFunction.Match(Target.Value, Range(sListRngNum), 0))
    ElseIf Target.Address = sDescRng Then
       Range(sNumRng).Value = WorksheetFunction.Index(Range(sListRngNum), _
       WorksheetFunction.Match(Target.Value, Range(sListRngDesc), 0))
    End If
    Application.EnableEvents = True
End Sub

これを実装するシートのSheet モジュールにこのコードを貼り付けます。必要に応じて範囲アドレスを変更してください。また、これは動的配列、コレクションなどによって行うこともできますが、これは非常に簡単です:)

于 2013-12-04T15:56:45.633 に答える