|
▼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の値を新たに作成した、シートへ転記する。
>
>上記のような事をしたいとおもっていますが、可能でしょうか?
|
|