if time >=0.5 then
cells(입력행,4)="오후"
를
if hour(time) then
cells(입력해,4)="오후"라고 고쳐서 했는데
이렇게 해도 되나요?
많이 헷갈리는게 문제에서 listindex를 사용하라는 말이 기출1처럼 나오지 않았는데도 기출2는 그냥 쓰는 경우처럼 시험장에서 사용하라는 속성이나 함수등등 모두 표기하는지 궁금합니다. 그리고 만약에 시험장에서 엑셀 프로시저 입력할 때 쓰라는 말이 없었는데 사용하면 정답인정이 안 되는지 모르겠습니다.
안녕하세요.
수정한 코드는 정상적으로 오전/오후 구분이 되지 않습니다.
원래 코드인 "time >= 0.5"의 의미는
엑셀(VBA)은 하루 24시간을 0부터 1 사이의 소수로 계산합니다. 따라서 정오(낮 12시)는 딱 하루의 절반인 0.5가 됩니다.
즉, 0.5보다 크거나 같다는 것은 낮 12시 이후(오후)라는 의미가 되는 정확한 식입니다.
수정한 코드인 "hour(time)"은
VBA의 If 조건문은 숫자가 들어올 경우 **0일 때만 거짓(False)**으로 인식하고, **0이 아닌 모든 숫자(1~23)는 참(True)**으로 인식합니다.
따라서 If Hour(Time) Then이라고 쓰시면 자정(0시)을 제외한 새벽 1시, 아침 9시 등 오전에 해당하는 시간들도 모두 참으로 처리되어 "오후"라고 잘못 입력됩니다.
의도에 맞게 올바르게 수정하면 다음과 같습니다.
If Hour(Time) >= 12 Then
Cells(입력행, 4) = "오후"
End If
문제에 제시된 함수나 속성, 연산자가 있으면 반드시 제시된 것을 사용해서 해결해야 하지만
제시된 함수나 속성, 연산자가 없다면, 결과만 맞게 산출되면 맞게 채점됩니다.
즐거운 하루 되세요.
-
관리자2026-04-15 11:07:26
안녕하세요.
수정한 코드는 정상적으로 오전/오후 구분이 되지 않습니다.
원래 코드인 "time >= 0.5"의 의미는
엑셀(VBA)은 하루 24시간을 0부터 1 사이의 소수로 계산합니다. 따라서 정오(낮 12시)는 딱 하루의 절반인 0.5가 됩니다.
즉,
0.5보다 크거나 같다는 것은 낮 12시 이후(오후)라는 의미가 되는 정확한 식입니다.수정한 코드인 "hour(time)"은
VBA의
If조건문은 숫자가 들어올 경우 **0일 때만 거짓(False)**으로 인식하고, **0이 아닌 모든 숫자(1~23)는 참(True)**으로 인식합니다.따라서
If Hour(Time) Then이라고 쓰시면 자정(0시)을 제외한 새벽 1시, 아침 9시 등 오전에 해당하는 시간들도 모두 참으로 처리되어 "오후"라고 잘못 입력됩니다.의도에 맞게 올바르게 수정하면 다음과 같습니다.
If Hour(Time) >= 12 Then
Cells(입력행, 4) = "오후"
End If
문제에 제시된 함수나 속성, 연산자가 있으면 반드시 제시된 것을 사용해서 해결해야 하지만
제시된 함수나 속성, 연산자가 없다면, 결과만 맞게 산출되면 맞게 채점됩니다.
즐거운 하루 되세요.