책 내용 질문하기
엑셀에서의 프로시저 구현 2번 신청 눌렀을때의 코드작성
도서
2026 시나공 컴퓨터활용능력 1급 실기 기출문제집
페이지
,
조회수
103
작성일
2026-05-10
작성자
유*민
첨부파일

i = [A2].CurrentRegion.Rows.Count + 2

Cells(i, 1) = txt신청자명.Value

Cells(i, 2) = txt신청일.Value

j = cmb잡지명.ListIndex

Cells(i, 3) = cmb잡지명.List(j, 0)

Cells(i, 4) = txt구독부수.Value

If opt신규.Value = True Then

Cells(i, 5) = "신규"

Else

Cells(i, 5) = "재구독"

End If

Cells(i, 6) = Cells(i, 4) * (Cells(i, 9) * 0.9)


이렇게 작성했는데 혹시 어디가 틀린지 알 수 있을까요? 결제금액이 다르게 나오네요

답변
2026-05-11 11:01:48

안녕하세요.

질문 시 정확한 교재 페이지나 회차를 언급해 주시면 정확한 답변이 가능합니다.

1. Cells(i, 9)의 값은 현재 '빈칸'입니다.

가장 큰 원인은 수식 마지막의 Cells(i, 9) 부분입니다.

문제점 : 지금 코드의 흐름을 보면 i행에 데이터를 처음으로 입력하고 있습니다. 그런데 Cells(i, 9)(i행 9열)에는 아직 아무런 값도 입력하지 않은 상태죠? 엑셀은 빈 셀을 0으로 인식하기 때문에, 부수 * (0 * 0.9)가 되어 결제금액이 0으로 나올 확률이 높습니다.

해결책 : 보통 잡지의 단가는 콤보 상자(cmb잡지명)에 함께 들어 있습니다. 콤보 상자의 두 번째 열(1번 인덱스)에 단가가 있다면 cmb잡지명.List(j, 1) 형식을 사용해야 합니다.

2. 텍스트 상자의 값은 '문자'입니다

문제점: txt구독부수.Value로 가져온 값은 숫자가 아닌 문자열(String) 형태입니다. 문자열 상태로 곱셈을 하면 엑셀이 알아서 숫자로 바꿔주기도 하지만, 안전하게 Val() 함수를 써서 숫자로 변환해 주는 것이 정석입니다.

즐거운 하루 되세요.

  • 관리자
    2026-05-11 11:01:48

    안녕하세요.

    질문 시 정확한 교재 페이지나 회차를 언급해 주시면 정확한 답변이 가능합니다.

    1. Cells(i, 9)의 값은 현재 '빈칸'입니다.

    가장 큰 원인은 수식 마지막의 Cells(i, 9) 부분입니다.

    문제점 : 지금 코드의 흐름을 보면 i행에 데이터를 처음으로 입력하고 있습니다. 그런데 Cells(i, 9)(i행 9열)에는 아직 아무런 값도 입력하지 않은 상태죠? 엑셀은 빈 셀을 0으로 인식하기 때문에, 부수 * (0 * 0.9)가 되어 결제금액이 0으로 나올 확률이 높습니다.

    해결책 : 보통 잡지의 단가는 콤보 상자(cmb잡지명)에 함께 들어 있습니다. 콤보 상자의 두 번째 열(1번 인덱스)에 단가가 있다면 cmb잡지명.List(j, 1) 형식을 사용해야 합니다.

    2. 텍스트 상자의 값은 '문자'입니다

    문제점: txt구독부수.Value로 가져온 값은 숫자가 아닌 문자열(String) 형태입니다. 문자열 상태로 곱셈을 하면 엑셀이 알아서 숫자로 바꿔주기도 하지만, 안전하게 Val() 함수를 써서 숫자로 변환해 주는 것이 정석입니다.

    즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.