システムwiki

Excelドロップダウンリストはコードに自動的に名前を付けます

Brittan 受付中 最終更新日:2021-05-02 02:36

選択したときにコードに名前を自動的に変更するドロップダウンリストを作成する方法を教えてください.私は異なる施設のドロップダウンリストを作成しようとしています.ドロップダウンリストから選択するときに、ユーザーにフルネームを表示できるようにします.
選択した名前はフルネームの代わりにコードを表示します.

返信リスト(回答:3)

1 #
BernieD

名前とコードの2列のリストを作成し、最初の列に名前を付けます.次に、最初の列の値を使用して、リストオプションを使用してエントリセルでデータ検証を使用します.次に:

1)このコードをコピーします.
2)目的のシートタブを右クリックします.
3)[コードの表示]を選択します.
4)表示されるwindows にコードを貼り付けます.
5)ファイルをマクロ対応の.xlsmファイルとして保存します.
6)必要に応じてセルのアドレスを変更します.コメントを参照してください

Private Sub Worksheet_Change(ByVal Target As Range)
Target.Address<>"$ A $ 2"の場合、Subを終了します 'ドロップダウンのあるセルのアドレス
'ループを回避するためにイベントをオフにします
Application.EnableEvents=False

'次の行の「C1:D10」をリストのアドレスに変更します
Target.Value=Application.VLookup(Target.Value、Range( "C1:D10")、2、False)
'イベントをオンに戻して、次の変更の準備をします
Application.EnableEvents=True
End Sub

応答1# ->にスキップ
2 #
Brittan

ありがとう私はそれを試してみるつもりです、私はこれを適用したい31個のセルを持っています.私はあなたの助けを感謝していただきありがとうございます.私はアポストロフィの隣にすべてを明確にしているように、私のための指示はコード権の指示ではありませんか?
"C1:D10"部分の場合も、これは私が現れるかリスト自体の範囲の範囲ですか?

応答2# ->にスキップ
3 #
BernieD 4

'このように見えるものはすべてコメントです

'すべてが指示であるわけではありません-いくつかは説明です

アドレスC1:D10は、値のリスト用です.同じシートのどこにでも、必要なだけ大きくすることができます.必要なのは、2列の値だけです.別のシートにある場合は、シート名を含める必要があります:

Target.Value=Application.VLookup(Target.Value、Worksheets( "SheetName").Range( "C1:D10")、2、False)

記述どおり、このコードはセルA2:A30に適用されます-適用するセルの範囲に変更します:

Private Sub Worksheet_Change(ByVal Target As Range)
Intersect(Target、Range( "A2:A30"))が何もない場合は、Subを終了します 'ドロップダウンのあるセルのアドレス
'ループを回避するためにイベントをオフにします
Application.EnableEvents=False

'次の行の「C1:D10」をリストのアドレスに変更します
Target.Value=Application.VLookup(Target.Value、Range( "C1:D10")、2、False)
'イベントをオンに戻して、次の変更の準備をします
Application.EnableEvents=True
End Sub