질문이 2개 입니다.
질문1. 150P 계산문제 2번에 대한 해답 156P를 따라서 VBA코드를 입력하니 다음과 같이 오류가 발생합니다.
오류화면 캡쳐는 첨부파일에 있습니다.
질문2. 다음과 같이 코드를 입력했을 때 ■ 이 반복되지 않는 이유는 무엇인가요?
Public Function FN비고(제품명)
If Mid(제품명, Len(제품명) - 4, 3) >= 100 Then
For a = 1 To Mid(제품명, Len(제품명) - 4, 3) / 100
FN비고 = "■"
Next a
Else
FN비고 = ""
End If
End Function
감사합니다.
& 연산자 앞 뒤로는 띄어쓰기를 해야 하는데 띄어쓰기가 없어 오류가 난 것입니다.
반복이 되지 않는 것은
FN비고 = "■" 로 작성했기 때문입니다.
FN비고 = FN비고 & "■"
와 같이 작성하셔야 정확한 결과가 나옵니다.
For 문은 아래 형식이 기본 형식입니다.
For 초기값 to 최종값 step 증가분
//반복되어 실행될 코드
Next
예를 들어
For a=1 to 10
a=a+1
Next a 라면
a는 1부터 10까지 반복되면서 누적합계를 구하는 코드가 됩니다.
For문은 a의 값이 10보다 작지 않은지 확인 하고 1~10 사이의 수라면
a=a+1을 실행합니다.
next a 를 만나면 다시 for 문의 시작으로 제어가 이동합니다.
다시 a가 1~10 사이의 수인지 확인하고,
1~10 사이의 수라면 a=a+1을 수행하고, 그렇지 않으면 Next a 다음으로 제어를 이동시키며 For문을 빠져나옵니다.
a는 변수로 변하는 값을 저장합니다.
1부터 Mid(제품명, Len(제품명) - 4, 3) / 100 의 계산 값까지 변합니다.
For 문이 Next 문을 만나 한 바퀴 돌면 1씩 증가하게 되죠.
변수 이름은 임의로 지정 가능합니다.
For문을 실행하다가 Next를 만나면
다시 For문으로 돌아가고 변수 a는 다음 값인 1 증가된 값을 가지고 For문이 실행됩니다.
For문으로 돌아갔는데, 증가된 a가 Mid(제품명, Len(제품명) - 4, 3) / 100 값보다 커지면 For문이 종료됩니다.
For문을 도는 동안 코드의 변화는 다음과 같습니다.
fn기타 = fn기타 & "■"
a가 1일때 실행하면 아무것도 입력되어 있지 않은 fn기타의 값과 "■"를 연결하여 fn기타에 넣으므로, fn기타에는 "■"가 들어가 있습니다.
a가 2일때 실행하면 fn기타에 입력되어 있던 "■"에 "■"를 연결하여 fn기타에 저장하므로 "■■"가 됩니다.
a가 3일때 실행하면 fn기타에 입력되어 있던 "■■"에 "■"를 연결하여 fn기타에 저장하므로 "■■■"가 됩니다.
연결하여 표시하기 위해 &를 이용합니다.
기존의 fn기타에 입력되어 있는 값에 "■"를 하나 더 연결하여 표시하는 것입니다.
좋은 하루 보내세요.
-
관리자2020-09-14 09:28:21
& 연산자 앞 뒤로는 띄어쓰기를 해야 하는데 띄어쓰기가 없어 오류가 난 것입니다.
반복이 되지 않는 것은
FN비고 = "■" 로 작성했기 때문입니다.
FN비고 = FN비고 & "■"
와 같이 작성하셔야 정확한 결과가 나옵니다.
For 문은 아래 형식이 기본 형식입니다.
For 초기값 to 최종값 step 증가분
//반복되어 실행될 코드
Next
예를 들어
For a=1 to 10
a=a+1
Next a 라면
a는 1부터 10까지 반복되면서 누적합계를 구하는 코드가 됩니다.
For문은 a의 값이 10보다 작지 않은지 확인 하고 1~10 사이의 수라면
a=a+1을 실행합니다.
next a 를 만나면 다시 for 문의 시작으로 제어가 이동합니다.
다시 a가 1~10 사이의 수인지 확인하고,
1~10 사이의 수라면 a=a+1을 수행하고, 그렇지 않으면 Next a 다음으로 제어를 이동시키며 For문을 빠져나옵니다.
a는 변수로 변하는 값을 저장합니다.
1부터 Mid(제품명, Len(제품명) - 4, 3) / 100 의 계산 값까지 변합니다.
For 문이 Next 문을 만나 한 바퀴 돌면 1씩 증가하게 되죠.
변수 이름은 임의로 지정 가능합니다.
For문을 실행하다가 Next를 만나면
다시 For문으로 돌아가고 변수 a는 다음 값인 1 증가된 값을 가지고 For문이 실행됩니다.
For문으로 돌아갔는데, 증가된 a가 Mid(제품명, Len(제품명) - 4, 3) / 100 값보다 커지면 For문이 종료됩니다.
For문을 도는 동안 코드의 변화는 다음과 같습니다.
fn기타 = fn기타 & "■"
a가 1일때 실행하면 아무것도 입력되어 있지 않은 fn기타의 값과 "■"를 연결하여 fn기타에 넣으므로, fn기타에는 "■"가 들어가 있습니다.
a가 2일때 실행하면 fn기타에 입력되어 있던 "■"에 "■"를 연결하여 fn기타에 저장하므로 "■■"가 됩니다.
a가 3일때 실행하면 fn기타에 입력되어 있던 "■■"에 "■"를 연결하여 fn기타에 저장하므로 "■■■"가 됩니다.
연결하여 표시하기 위해 &를 이용합니다.
기존의 fn기타에 입력되어 있는 값에 "■"를 하나 더 연결하여 표시하는 것입니다.
좋은 하루 보내세요.