| 
    
     |  | ▼nokubo さん: >
 >A列には10000から始まる部品コードが50000まで入力されております。
 >部品コードの上2桁をシート名とし、上2桁が一致する部品コードを取得したいと
 >考えております。
 >
 >例:10000〜10999までがSheet名『10』
 >  11000〜11999までがSheet名『11』
 >  13000〜13999までがSheet名『13』
 >※桁が飛ぶ場合もあります。
 >  Sheet名『10』のデータはA2:A1000,10000:10999です。
 >  A列を走査して、50000以降はデータが入っていないので、
 >  プログラムを終了する。というようにしたいのです。
 
 ならば、Sheet名は、『10』から『49』までですよね?
 はじめにシートを作成し、
 
 A列の値の上2桁を取得するには、
 
 Sub test()
 Dim i As Long
 Dim myVal As Long
 
 With Sheets("Sheet1")
 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
 If Not IsEmpty(Cells(i, 1).Value) Then
 myVal = Left(Cells(i, 1).Value, 2)
 End If
 ' MsgBox myVal
 Next
 End With
 End Sub
 
 
 でできると思うので、後はSelect Caseで分岐したらいかがでしょう?
 
 >
 >IF Sheet1のA2が空白でなければ、新たにA2の上2桁の値をシート名とした、シートを作成する。
 >
 >Sheet1のA3の上2桁の値がA3の上のセルの値と同じであればA3の値を新たに作成した、シートへ転記する。
 >
 >上記のような事をしたいとおもっていますが、可能でしょうか?
 
 |  |