|
▼Hiroko さん:
こんばんは。
>>として、一番小さい数字と一番大きな数字で処理しているのですが・・・
>実際のNoは111,130,134,138,511,534・・・544・・・352等全部で70ほどの
>Noが入ります。
>Arrayで出来ないか考えたのですが、上手く行きません。
Match関数を使用してみて下さい。
適当なセル範囲にこの111、130、・・・というリストを作成しましょう。
仮に「Sheet1」と言うシート名のシートのセルA1から
A
1 111
2 130
3 134
4 138
5 511
6 534
7 544
8 352
というように例では、上記8データがセルA1からA8に入力されているとします。
チェック対象セル「Sheet2」というシート名のシートのセルC5だとすると、
標準モジュールに
Sub test()
Dim ans As Variant
Dim rng As Range
Set rng = Worksheets("sheet2").Range("c5")
With Worksheets("sheet1")
ans = Application.Match(rng, _
.Range("a1", .Cells(.Rows.Count, "a").End(xlUp)), 0)
If IsError(ans) Then
MsgBox "No−Good"
Else
.Select
.Range("a1", .Cells(.Rows.Count, "a").End(xlUp)).Cells(ans).Select
End If
End With
End Sub
Sheet2のセルC5に適当にデータを入力後に実行してみて下さい。
Sheet1のA列にないデータであればエラーメッセージが
表示されます。
該当するデータであれば、Sheet1のA列の該当セルを選択します。
よく使われる検索手法ですよ!!
試してみて下さい
|
|