|
2つの値を検索して値を返すにはどうしたらよいのでしょうか
教えてください。シート2に下記の一覧があります。
シート2(X1)
セルA列 B列 C列 D列 E列
佐藤 太郎 社名 住所 電話番号
・ ・ ・ ・ ・
・ ・ ・ ・ ・
・ ・ ・ ・ ・
・ ・ ・ ・ ・
佐藤 花子 社名 住所 電話番号
・ ・ ・ ・ ・
・ ・ ・ ・ ・
・ ・ ・ ・ ・
・ ・ ・ ・ ・
鈴木 三郎 社名 住所 電話番号
検索用のシート下記に値を入力
シート1(X2)
セルA列1行目
姓(佐藤)を入力
セルA列2行目
名(花子)を入力
マクロを実行すると検索した値をシート1に返したいのです。
シート1(X2)
セルA列3行目
佐藤花子の会社名
セルA列4行目
佐藤花子の住所
佐藤花子の電話番号
こんな感じで書いていますが1つの値しか検索できません。
また、値がなかったらデバッグがでます。全然できてませんが
どなたかよろしくお願いします。
Sub 検索結果()
'
Dim ANSYL As Integer
Dim TanNo, FIND As String
Dim X1, X2 As Worksheet
'検索シート(X2)、一覧シート(X1)を省略形
Set X1 = Worksheets("一覧")
Set X2 = Worksheets("検索")
'指名を検索
TanNo = X2.Range("A1")
'一覧シートの指名を検索
X1.Activate
Set FND = X1.Columns("A:A").FIND(what:=TanNo, lookat:=xlWhole)
'指名が存在すれば、アクティブにし、行番号を取得
X1.Activate
X1.Range("A:A").Select
Selection.FIND(what:=TanNo, lookat:=xlWhole).Activate
ANSYL = ActiveCell.Row
'検索シートに結果を表示
X2.Cells(1, 3) = X1.Cells(ANSYL, 3) '社名
X2.Cells(1, 4) = X1.Cells(ANSYL, 4) '住所
X2.Cells(1, 5) = X1.Cells(ANSYL, 5) '電話番号
X2.Activate
Range("D4").Select
End Sub
|
|