반응형
지인 사무실에서 사용하는 엑셀 기반 시스템에 오류가 발생했다.
첫번째 오류는 유지율1 과 유지율2가 같은 값이 나오는 것이고
두번째 오류는 회수율1에 나오는 값에 백분율이 아닌 지수값으로 나오는 것이다.
첫번째 오류는 쉽게 해결했다.
유지율1 과 유지율2에 같은 값을 참조하고 있었다.
참조하는 칼럼을 변경했다. ("U" --> "V") 해결되었다.
For i = 1 To n
...
p = 1 + 52
arr(i, 4) = .Range("U" & p) '-- 유지율 1
arr(i, 5) = .Range("U" & p) '-- 유지율 2
...
Next i
End With
두번째 오류는 쉽지 않았다.
Template 시트에 있는 양식을 복사해서 새로운 시트에 옮기고
그 위에 값을 넣는 것이다.
이유는 모르지만 1번 row와 4번 Row는 지수 양식으로 나타났다. 나머지는 백분율로 잘 나왔다.
Template 문제인가 하여 확인해 봤지만 아니었다.
VBA에서 데이터 입력의 문장의 문제인가 살폈지만 아니었다.
원인을 찾기보다, 해결책을 바로 넣기로 했다.
".Range("D" & p).NumberFormat = "0.00%" 를 추가햤더니 해결되었다.
'===== 기존 코드 ========
For i = 1 To n
...
p = i + 23
.Range("D" & p) = arr(i, 3) '-- 유지율 1
.Range("E" & p) = arr(i, 3) '-- 유지율 2
...
Next i
'===== 수정 코드 ========
For i = 1 To n
...
p = i + 23
.Range("D" & p) = arr(i, 3) '-- 유지율 1
.Range("D" & p).NumberFormat = "0.00%" '-- 백분율 처리
.Range("E" & p) = arr(i, 3) '-- 유지율 2
...
Next i
셀 관련 NumberFormat 은 셀에 적용할 수 있는 Format이 전부 제공되고 있다.
외울 필요없이, 블로그에 적어 두면 찾기 쉽다.
찾아서 적용하면 된다.
.Range("D" & p).NumberFormat 유형
기본 포멧
Range(셀주소).NumberFormat = "표시 형식"
표시형식 예시
'-- 통화
Range("A1").NumberFormat = "#,###"
'-- 소수점 자리
Range("A1").NumberFormat = "0.00"
'-- 통화&소수점
Range("A1").NumberFormat = "#,###.00"
'-- 백분율
Range("A1").NumberFormat = "0.00%"
'-- 지수형식
Range("A1").NumberFormat = "##0.0E+0"
'-- 날짜
Range("A1").NumberFormat = "yyyy-mm-dd"
Range("A1").NumberFormat = "yyyy""년"" mm""월"" dd""일"""
'-- 날짜 시간
Range("A1").NumberFormat = "yyyy-mm-dd h:mm"
'-- 텍스트
Range("A1").NumberFormat = "@"
'-- 색상지정
Range("A1").NumberFormat = "#,##0;[Red]-#,##0"
참조 문서
반응형
'엑셀' 카테고리의 다른 글
[엑셀] BMI 계산하기, 신장과 체중으로 내 비만도 알아보기 (0) | 2024.03.16 |
---|---|
엑셀 VBA. 사용 중인 파일의 경로 알기, path 기능 (0) | 2022.05.22 |
[엑셀] 숫자 앞에 필요한 만큼 0 붙이기 (0) | 2022.04.29 |
엑셀 VBA(매크로) 시트 추가, 삭제, 이름변경, 복사 하 (0) | 2022.04.06 |
엑셀. 조건부서식-토,일요일 컬럼 색깔바꾸기 (0) | 2022.04.06 |