3번에서요. (조건에 맞는 데이터를 워크시트에서 찾아 표시하기)
스위치 = 0
참조행 = 3
<-이렇게 '스위치'와 '참조행' 변수를 설정하고 초기화해야하는건 문제의 어느 부분을 보고 알 수 있나요? 문제만 보고 스위치=0 참조행 =0 이렇게 식을 어떻게 세우는지 모르겠어요. 여기에서 참조행은 등급종류를 말하는거죠? 스위치는 어디를 말하는건가요...ㅠㅠ..?,
For Each aa In Range("d4:d7")
<-aa는 임의로 설정한 문자인가요? 아님 for each문을 쓸 때 aa도 세트인가요? 설명에는 개체변수라고 되어있는데 앞으로 for each문이 나오면 꼭 aa를 써야되나싶어서요. [D4:D7]영역의 각 개체는 고객명 김현진,성은희,정민호,주성치인데, 이 4명의 개체를 aa에 저장해놓고 실행문을 반복한다는거죠?
?
참조행 = 참조행 + 1
<-참조행 : 'txt고객명' 컨트롤에 입력한 고객명이 시트의 몇 번째 행에 있는지를 구하는 거라고 되어있는데요. +1을 한건 고객명~결재방식의 제목행때문에 한칸씩 뒤로 밀리니까 그런건가요?
If aa.Value = txt고객명 Then
txt고객등급 = Cells(참조행, 5)
txt매출금액 = Cells(참조행, 6)
txt결재방식 = Cells(참조행, 7)
스위치 = 1 <- aa에 저장된 값(value)이 'txt고객명' 컨트롤에 입력된 값이 같아서 위의 조건대로 실행문이 수행되고 스위치에 1을 넣어준건 aa에 저장된 값과 txt고객명 컨트롤에 입력된 값이 달라서 실행문이 수행되지 못하는 경우와 구분하려고 그런건가요??'ㅁ'?
Exit For
End If
Next <-d4:d7 범위를 다 검사하고 for each문을 빠져나가서
If 스위치 = 0 Then 스위치가 0이면 위 과정을 거치지 않은거라 D4:D7에 입력한 고객명이 없었던거고
그때는 "조건에 일치하는 자료가 없습니다" 이렇게 나오는거죠?
MsgBox "조건에 일치하는 자료가 없습니다."
End If
End Sub
?의식의 흐름대로 써봤는데요. 제가 혹시 잘못 알고 있는 부분이 있다면 좀 알려주세요ㅠ
이런 식은 경우의 수마다 다 외워서 알고 있어야 하나요? 문제2번의 3을 보고 어떻게 이렇게 식을 세울 수 있나요?
아 그리고 VBE에서 모범답안에 보면 들여쓰기 같이 되어있는거요.
예를 들면
Private Sub Worksheet.change
Target.Font.Name = "바탕체"
Target.Font.Size = "14"
여기서요. 들여쓴 부분도 똑같이 써야만 정답인가요? 아님 그냥 편의상 시각적으로 보기 편하라고 그러는건가요?
컴맹이라 허접한 질문만 드리네요.ㅠㅠ그래도 매번 친절하고 자세한 답변 달아주셔서 감사합니다.
안녕하세요.
3번에서요. (조건에 맞는 데이터를 워크시트에서 찾아 표시하기)
스위치 = 0
참조행 = 3
<-이렇게 '스위치'와 '참조행' 변수를 설정하고 초기화해야하는건 문제의 어느 부분을 보고 알 수 있나요? 문제만 보고 스위치=0 참조행 =0 이렇게 식을 어떻게 세우는지 모르겠어요. 여기에서 참조행은 등급종류를 말하는거죠? 스위치는 어디를 말하는건가요...ㅠㅠ..?,
참조행은 워크시트에 있는 데이터를 컨트롤에 표시할 때 몇번째 행에 있는 데이터를 표시할 지를 나타내는 것입니다. 워크시트를 보면 실제 데이터가 4행부터 입력이 되어 있는데, for문 안에서 참조행=참조행+1을 실행한 다음 값을 비교하여 셀의 내용을 텍스트에 표시하므로, 처음 참조행=참조행+1을 실행했을 때 4가 되도록 참조행의 초기값을 3으로 지정한 것입니다.
스위치는 txt고객명 컨트롤에 입력한 값이 워크시트에 입력된 값과 동일한 것이 없을 경우 메시지를 표시하기 위한 것입니다. 스위치의 초기값을 0으로 지정한 다음 for문 안에서 동일한 값이 있을 때 스위치=1을 실행하게 합니다. 그런 다음 맨 마지막 if 문에서 스위치 값을 비교합니다. 스위치 값이 초기값과 동일한 0으로 되어 있다면 동일한 값이 없는 것이므로 메시지 박스를 표시합니다.
For Each aa In Range("d4:d7")
<-aa는 임의로 설정한 문자인가요? 아님 for each문을 쓸 때 aa도 세트인가요? 설명에는 개체변수라고 되어있는데 앞으로 for each문이 나오면 꼭 aa를 써야되나싶어서요.
아닙니다. aa는 임의로 지정한 변수입니다.
[D4:D7]영역의 각 개체는 고객명 김현진,성은희,정민호,주성치인데, 이 4명의 개체를 aa에 저장해놓고 실행문을 반복한다는거죠?
?
네 맞습니다.
참조행 = 참조행 + 1
<-참조행 : 'txt고객명' 컨트롤에 입력한 고객명이 시트의 몇 번째 행에 있는지를 구하는 거라고 되어있는데요. +1을 한건 고객명~결재방식의 제목행때문에 한칸씩 뒤로 밀리니까 그런건가요?
참조행은 워크시트에 있는 데이터를 컨트롤에 표시할 때 행의 위치를 표시하기 위한 것으로, 워크시트에서 실제 데이터는 4행부터 입력되어 있고, 참조행의 초기값을 3으로 지정했으므로 +1을 해줘 참조행을 4로 만든 것입니다. for문을 실행할 때마다 참조행의 값은 5, 6, 7 등으로 변경되는 것입니다.
If aa.Value = txt고객명 Then
txt고객등급 = Cells(참조행, 5)
txt매출금액 = Cells(참조행, 6)
txt결재방식 = Cells(참조행, 7)
스위치 = 1 <- aa에 저장된 값(value)이 'txt고객명' 컨트롤에 입력된 값이 같아서 위의 조건대로 실행문이 수행되고 스위치에 1을 넣어준건 aa에 저장된 값과 txt고객명 컨트롤에 입력된 값이 달라서 실행문이 수행되지 못하는 경우와 구분하려고 그런건가요??'ㅁ'?
네 맞습니다.
Exit For
End If
Next <-d4:d7 범위를 다 검사하고 for each문을 빠져나가서
If 스위치 = 0 Then 스위치가 0이면 위 과정을 거치지 않은거라 D4:D7에 입력한 고객명이 없었던거고
그때는 "조건에 일치하는 자료가 없습니다" 이렇게 나오는거죠?
MsgBox "조건에 일치하는 자료가 없습니다."
End If
End Sub
네 맞습니다. 정확히 이해하셨네요.
?의식의 흐름대로 써봤는데요. 제가 혹시 잘못 알고 있는 부분이 있다면 좀 알려주세요ㅠ
이런 식은 경우의 수마다 다 외워서 알고 있어야 하나요? 문제2번의 3을 보고 어떻게 이렇게 식을 세울 수 있나요?
-> 이 문제의 경우는 많이 어려운 문제로, 딱 한번 출제된 문제입니다. 이해하고 넘어가시면 됩니다.
코드는 어느 정도의 암기는 필요하지만 암기보다는 코드를 정확히 이해하고 많은 문제를 풀어봐 응용할 수 있는 수준이 되는 것이 중요합니다.
아 그리고 VBE에서 모범답안에 보면 들여쓰기 같이 되어있는거요.
예를 들면
Private Sub Worksheet.change
Target.Font.Name = "바탕체"
Target.Font.Size = "14"
여기서요. 들여쓴 부분도 똑같이 써야만 정답인가요? 아님 그냥 편의상 시각적으로 보기 편하라고 그러는건가요?
들여쓰기를 하지 않아도 상관 없습니다. 하지만 일반적으로 코드를 작성할때 들여쓰기를 해서 코드를 작성합니다. 여러 프로시저가 있을 경우 혼동되기 때문입니다.
즐거운 하루 되세요.
즐거운 하루 되세요.
-
*2018-02-09 09:38:27
안녕하세요.
3번에서요. (조건에 맞는 데이터를 워크시트에서 찾아 표시하기)
스위치 = 0
참조행 = 3
<-이렇게 '스위치'와 '참조행' 변수를 설정하고 초기화해야하는건 문제의 어느 부분을 보고 알 수 있나요? 문제만 보고 스위치=0 참조행 =0 이렇게 식을 어떻게 세우는지 모르겠어요. 여기에서 참조행은 등급종류를 말하는거죠? 스위치는 어디를 말하는건가요...ㅠㅠ..?,
참조행은 워크시트에 있는 데이터를 컨트롤에 표시할 때 몇번째 행에 있는 데이터를 표시할 지를 나타내는 것입니다. 워크시트를 보면 실제 데이터가 4행부터 입력이 되어 있는데, for문 안에서 참조행=참조행+1을 실행한 다음 값을 비교하여 셀의 내용을 텍스트에 표시하므로, 처음 참조행=참조행+1을 실행했을 때 4가 되도록 참조행의 초기값을 3으로 지정한 것입니다.
스위치는 txt고객명 컨트롤에 입력한 값이 워크시트에 입력된 값과 동일한 것이 없을 경우 메시지를 표시하기 위한 것입니다. 스위치의 초기값을 0으로 지정한 다음 for문 안에서 동일한 값이 있을 때 스위치=1을 실행하게 합니다. 그런 다음 맨 마지막 if 문에서 스위치 값을 비교합니다. 스위치 값이 초기값과 동일한 0으로 되어 있다면 동일한 값이 없는 것이므로 메시지 박스를 표시합니다.
For Each aa In Range("d4:d7")
<-aa는 임의로 설정한 문자인가요? 아님 for each문을 쓸 때 aa도 세트인가요? 설명에는 개체변수라고 되어있는데 앞으로 for each문이 나오면 꼭 aa를 써야되나싶어서요.
아닙니다. aa는 임의로 지정한 변수입니다.
[D4:D7]영역의 각 개체는 고객명 김현진,성은희,정민호,주성치인데, 이 4명의 개체를 aa에 저장해놓고 실행문을 반복한다는거죠?
?
네 맞습니다.
참조행 = 참조행 + 1
<-참조행 : 'txt고객명' 컨트롤에 입력한 고객명이 시트의 몇 번째 행에 있는지를 구하는 거라고 되어있는데요. +1을 한건 고객명~결재방식의 제목행때문에 한칸씩 뒤로 밀리니까 그런건가요?
참조행은 워크시트에 있는 데이터를 컨트롤에 표시할 때 행의 위치를 표시하기 위한 것으로, 워크시트에서 실제 데이터는 4행부터 입력되어 있고, 참조행의 초기값을 3으로 지정했으므로 +1을 해줘 참조행을 4로 만든 것입니다. for문을 실행할 때마다 참조행의 값은 5, 6, 7 등으로 변경되는 것입니다.
If aa.Value = txt고객명 Then
txt고객등급 = Cells(참조행, 5)
txt매출금액 = Cells(참조행, 6)
txt결재방식 = Cells(참조행, 7)
스위치 = 1 <- aa에 저장된 값(value)이 'txt고객명' 컨트롤에 입력된 값이 같아서 위의 조건대로 실행문이 수행되고 스위치에 1을 넣어준건 aa에 저장된 값과 txt고객명 컨트롤에 입력된 값이 달라서 실행문이 수행되지 못하는 경우와 구분하려고 그런건가요??'ㅁ'?
네 맞습니다.
Exit For
End If
Next <-d4:d7 범위를 다 검사하고 for each문을 빠져나가서
If 스위치 = 0 Then 스위치가 0이면 위 과정을 거치지 않은거라 D4:D7에 입력한 고객명이 없었던거고그때는 "조건에 일치하는 자료가 없습니다" 이렇게 나오는거죠?
MsgBox "조건에 일치하는 자료가 없습니다."
End If
End Sub네 맞습니다. 정확히 이해하셨네요.
?의식의 흐름대로 써봤는데요. 제가 혹시 잘못 알고 있는 부분이 있다면 좀 알려주세요ㅠ
이런 식은 경우의 수마다 다 외워서 알고 있어야 하나요? 문제2번의 3을 보고 어떻게 이렇게 식을 세울 수 있나요?
-> 이 문제의 경우는 많이 어려운 문제로, 딱 한번 출제된 문제입니다. 이해하고 넘어가시면 됩니다.
코드는 어느 정도의 암기는 필요하지만 암기보다는 코드를 정확히 이해하고 많은 문제를 풀어봐 응용할 수 있는 수준이 되는 것이 중요합니다.
아 그리고 VBE에서 모범답안에 보면 들여쓰기 같이 되어있는거요.
예를 들면
Private Sub Worksheet.change
Target.Font.Name = "바탕체"
Target.Font.Size = "14"
여기서요. 들여쓴 부분도 똑같이 써야만 정답인가요? 아님 그냥 편의상 시각적으로 보기 편하라고 그러는건가요?
들여쓰기를 하지 않아도 상관 없습니다. 하지만 일반적으로 코드를 작성할때 들여쓰기를 해서 코드를 작성합니다. 여러 프로시저가 있을 경우 혼동되기 때문입니다.
즐거운 하루 되세요.
즐거운 하루 되세요.