책 내용 질문하기
기출3 사용자 정의 함수
도서
2026 한 권으로 끝내는 시나공 컴활 1급 필기+실기 (컴퓨터활용능력 1급)
페이지
325
조회수
83
작성일
2026-05-11
작성자
손*린
첨부파일

계산문제 5번에서


Public Function fn구분(법정동명, 본번, 부번)


If 본번>=0 And 본번 <= 999 And 부번>=0 And 부번 <= 99 Then

fn구분 = Left(법정동명,1)& "_" &본번& "-" &부번


Else

fn구분 = "확인필요"


End If

End Function


이렇게 썼는데 "-" 부분에서 자꾸
컴파일 오류입니다:
필요한 요소:문의 끝
이런 오류가 뜨는데 도대체 어떤 부분이 잘못되었는지 모르겠어요ㅜ
답변
2026-05-12 09:24:23

안녕하세요.

VBA에서 발생한 "컴파일 오류입니다: 필요한 요소: 문의 끝" 오류는 주로 수식이나 명령문의 문법이 어긋났을 때 나타납니다.

작성하신 코드에서는 연결 연산자(&)의 앞뒤 공백이 생략된 것이 원인입니다.

VBA 편집기는 변수나 함수 바로 뒤에 붙은 &를 문자열을 잇는 연산자가 아니라, 숫자의 데이터 형식을 지정하는 형식 선언 문자(Long형)로 오해하기 때문에 이런 오류를 내뱉게 됩니다.

[수정된 코드]

Public Function fn구분(법정동명, 본번, 부번)


If 본번 >= 0 And 본번 <= 999 And 부번 >= 0 And 부번 <= 99 Then

' & 연산자 앞뒤에 반드시 공백을 추가해야 합니다.

fn구분 = Left(법정동명, 1) & "_" & 본번 & "-" & 부번

Else

fn구분 = "확인필요"

End If


End Function


즐거운 하루 되세요.

  • 관리자
    2026-05-12 09:24:23

    안녕하세요.

    VBA에서 발생한 "컴파일 오류입니다: 필요한 요소: 문의 끝" 오류는 주로 수식이나 명령문의 문법이 어긋났을 때 나타납니다.

    작성하신 코드에서는 연결 연산자(&)의 앞뒤 공백이 생략된 것이 원인입니다.

    VBA 편집기는 변수나 함수 바로 뒤에 붙은 &를 문자열을 잇는 연산자가 아니라, 숫자의 데이터 형식을 지정하는 형식 선언 문자(Long형)로 오해하기 때문에 이런 오류를 내뱉게 됩니다.

    [수정된 코드]

    Public Function fn구분(법정동명, 본번, 부번)


    If 본번 >= 0 And 본번 <= 999 And 부번 >= 0 And 부번 <= 99 Then

    ' & 연산자 앞뒤에 반드시 공백을 추가해야 합니다.

    fn구분 = Left(법정동명, 1) & "_" & 본번 & "-" & 부번

    Else

    fn구분 = "확인필요"

    End If


    End Function


    즐거운 하루 되세요.

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