|
▼ハチ さん:
ご回答さらにありがとうございます。
ただ、実行後にb1から時間入力セルに#NAME?
と出ます。
10:30以降は書き換えしません。
すみません。
>▼kaoru さん:
>>▼ハチ さん:
>>>丸めの基準を明確したほうが良いのでは?
>>>9:10ならどっちですか?
>>7:00以下なら7:00です
>>7:00以上8:30以下なら8:30です
>>8:30以上9:00以下なら9:00です
>>9:00以上10:30以下なら10:30です。
>>よろしくお願いいたします。
>>関数で表現すると(:はエラーになりますが・・)
>>=if(H14<7:00,7:00,if(and(H14<8:30,H14>7:00),8:30,(if(and(H14<9:00,H14>8:30),9:00,(if(and(H14<10:30,H14>9:00),10:30,h14))))
>> です。
>
>10:30以降は・・
>なんでしょう?
>
>Option Explicit
>
>Sub Time_test()
>
>'C列を作業列に使う。困る場合はOffsetの値を変更
>With ActiveSheet
> With .Range("B1", .Range("B65536").End(xlUp))
> .Offset(, 1).Formula = "=Time_Round(B1)"
> .Value = .Offset(, 1).Value
> .Offset(, 1).Clear
> End With
>End With
>
>End Sub
>
>Function Time_Round(OrgT As Date) As Date
>
>Select Case OrgT
> Case Is <= CDate("7:00")
> Time_Round = CDate("7:00")
> Case Is <= CDate("8:30")
> Time_Round = CDate("8:30")
> Case Is <= CDate("9:00")
> Time_Round = CDate("9:00")
> Case Is <= CDate("10:30")
> Time_Round = CDate("10:30")
> Case Else
> 'それ以降は・・適当に12:00
> Time_Round = CDate("12:00")
> End Select
>
>End Function
|
|