|
こんばんは。
>範囲指定された場所(セル番地B2〜B10)に入力された
> b
>1 6:15
>2 8:20
>3 10:15
>4 9:55
>5
>6 6:45
>7 10:05
>8 6:45
>9
>10 6:20
アクティブシートのB列に上記のようなデータがあったとします。
(時刻は、シリアル値)
標準モジュールに
'=========================================
Sub test()
Dim tmarray As Variant
Dim rng As Range
Dim crng As Range
Dim ans As Variant
tmarray = Array([TimeValue("10:30")], [TimeValue("9:00")], [TimeValue("8:30")], [TimeValue("7:00")])
Set rng = Range("b1", Cells(Rows.Count, "b").End(xlUp))
For Each crng In rng
With crng
If .Value <> "" Then
ans = Application.Match(.Value, tmarray, -1)
If Not IsError(ans) Then
.Value = tmarray(ans - 1)
End If
End If
End With
Next
Erase tmarray
End Sub
でtestを実行して試してみて下さい。
上記は、10:30以降は、変化しません。
|
|