기준행위치 = [b3].Row
기준범위행수 =
입력행 = 기준행위치 + 기준범위행수
Cells(입력행, 2) = CDate(txt판매일자)
Cells(입력행, 3) = txt제품명
Cells(입력행, 4) = Val(txt수량)
Cells(입력행, 5) = Val(txt단가)
Cells(입력행, 6) = Format(Val(txt수량) * Val(txt단가), "currency")
Cells(입력행, 7) = cmb결재형태
기준행 위치가 b3으로 시작되는 것을 알겠습니다.
표의 데이터가 b3부터 시작이 되어 3으로 치환되는것은 이해가 됩니다.
하지만
질문1) 기준범위행수의 [b3].CurrentRegion.Rows.Count 의미가 이해가 되지 않습니다.
b3을 기준으로 데이터가 [판매날짜], [제품명],[수량], [단가], [금액], [결재구분] 으로 되어있으면
6이 되어야 하는것 아닌가요? 의미를 자세히 알려주세요.
질문 2) CDate 는 어디서 나온 것인가요?
질문 3) Format의 이용방법이 궁금합니다.
질문 4)
‘판매자료입력’ 폼 화면에서 ‘조회(cmd조회)’ 버튼을 클릭하면 시트의 표에 입력된 제일 마지막의 판매날짜, 제품명, 수량, 단가의 폼의 판매일자(txt판매일자), 제품명(txt제품명), 수량(txt수량), 단가(txt단가)에 각각 표시되는 프로시저를 작성하시오.
→
Private Sub cmd조회_Click()
기준행위치 = [b3].Row
기준범위행수 = [b3].CurrentRegion.Rows.Count - 1
입력행 = 기준행위치 + 기준범위행수
txt판매일자 = Cells(입력행, 2)
txt제품명 = Cells(입력행, 3)
txt수량 = Cells(입력행, 4)
txt단가 = Cells(입력행, 5)
End Sub
조회 버튼을 누를때는왜 -1을 해야하는지 궁금합니다.
1.
판매날짜 제품명 수량 단가 금액 결재구분
2015-02-13 Q-004 4 400 \1,600 카드
2015-07-18 Q-001 2 100 \200 현금
2015-08-12 Q-004 25 2500 \62,500 카드
로 데이터가 입력되어 있고
기준행위치는 b3입니다.
[b3].CurrentRegion.Rows.Count 는 b3과 연결된 행의 개수이므로
b3,b4,b5,b6 을 세어 4가 표시되는 것입니다.
그럼 기준행위치가 3, 기준범위행수는 4가 되어 3+4 로 7 즉 7번째 행부터 입력이 가능하게 되는 것입니다.
2.
cdate 함수는 텍스트 형식의 데이터를 날짜 형식으로 변경해 주는 함수입니다.
컨트롤에 입력된 값이 2009-09-02와 같이 날짜 형식으로 되어 있다고 해도 이것을 텍스트로 인식하는 경우가 있습니다.
그러므로 cdate를 사용하여 날짜 형식으로 변경해 주는 것입니다.
이것을 사용하지 않아도 날짜 형식으로 입력되었다면 생략해도 상관 없습니다.
시나공 채점 프로그램이 정답파일과 정확히 일치해야 정답으로 인정 하므로 오답처리 되는 경우가 있습니다.
실제 시험에서는 지시사항에 맞게 지정하고 정확한 결과가 나오면 정답으로 인정 됩니다.
3. format(값,"서식") 으로 사용됩니다.
4.
쉽게 설명 한다면
입력행=[a3].row+[a3].currentregion.count
은 입력 버튼, 즉 컨트롤에 입력된 값을 마지막 셀뒤에 입력 할때 사용 하는 것이구요.
입력행=[a3].row+[a3].currentregion.count -1
은 조회 버튼, 즉 셀에 입력된 값의 마지막 데이터를 조회할때 사용 하는 것입니다.
[a3].row 는 a3의 행위치를 나타내므로 3이 나오구요.
[a3].currentregion.rows.count 는 a3부터 입력되어 있는 값들의 개수를 세게 됩니다.
a3부터 3줄의 데이터가 있다면 이 값은 3이 되고
3+3 이 되어 6 행이 되는 것이죠. (필드명 포함해서 입니다. 필드명부터 4줄이라면 4를 더해주셔야 합니다.)
즉 6번행부터 입력하게 합니다.
이것은 마지막 데이터 다음줄에 값을 입력 하는 입력 프로시저에 사용하는 것이고
여기에 -1 을 하신다면 마지막 줄을 조회하여 폼에 나타나게 하는 조회 프로시저를 작성 하는 것입니다.
이름=cells(입력행,1)
과 같이 나타내는 것은 이름에 셀에 입력된 값을 입력 하라는 것으로 셀에 입력된 값을 폼에 입력하게 하는
조회 하실때 사용하는 것이구요.
cells(입력행,1)=이름
은 셀에 폼의 컨트롤에 입력된 이름 값을 셀에 입력 하라는 것으로
입력 프로시저를 작성할 때 사용하는 것입니다.
프로시저에서 =은 같다가 아니라
오른쪽에 있는 데이터를 왼쪽으로 넣는다 라는 개념으로 생각 하셔야 합니다.
즉
입력행 = [a3].row + [a3].currentregion.rows.count -1
이름=cells(입력행,1)
과 같이 작성하시면 조회를 하는 프로시저이고
입력행 = [a3].row + [a3].currentregion.rows.count
cells(입력행,1)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
좋은 하루 되세요.
-
*2017-01-25 23:20:53
1.
판매날짜 제품명 수량 단가 금액 결재구분
2015-02-13 Q-004 4 400 \1,600 카드
2015-07-18 Q-001 2 100 \200 현금
2015-08-12 Q-004 25 2500 \62,500 카드
로 데이터가 입력되어 있고
기준행위치는 b3입니다.
[b3].CurrentRegion.Rows.Count 는 b3과 연결된 행의 개수이므로
b3,b4,b5,b6 을 세어 4가 표시되는 것입니다.
그럼 기준행위치가 3, 기준범위행수는 4가 되어 3+4 로 7 즉 7번째 행부터 입력이 가능하게 되는 것입니다.
2.
cdate 함수는 텍스트 형식의 데이터를 날짜 형식으로 변경해 주는 함수입니다.
컨트롤에 입력된 값이 2009-09-02와 같이 날짜 형식으로 되어 있다고 해도 이것을 텍스트로 인식하는 경우가 있습니다.
그러므로 cdate를 사용하여 날짜 형식으로 변경해 주는 것입니다.
이것을 사용하지 않아도 날짜 형식으로 입력되었다면 생략해도 상관 없습니다.
시나공 채점 프로그램이 정답파일과 정확히 일치해야 정답으로 인정 하므로 오답처리 되는 경우가 있습니다.
실제 시험에서는 지시사항에 맞게 지정하고 정확한 결과가 나오면 정답으로 인정 됩니다.
3. format(값,"서식") 으로 사용됩니다.
4.
쉽게 설명 한다면
입력행=[a3].row+[a3].currentregion.count
은 입력 버튼, 즉 컨트롤에 입력된 값을 마지막 셀뒤에 입력 할때 사용 하는 것이구요.
입력행=[a3].row+[a3].currentregion.count -1
은 조회 버튼, 즉 셀에 입력된 값의 마지막 데이터를 조회할때 사용 하는 것입니다.
[a3].row 는 a3의 행위치를 나타내므로 3이 나오구요.[a3].currentregion.rows.count 는 a3부터 입력되어 있는 값들의 개수를 세게 됩니다.
a3부터 3줄의 데이터가 있다면 이 값은 3이 되고
3+3 이 되어 6 행이 되는 것이죠. (필드명 포함해서 입니다. 필드명부터 4줄이라면 4를 더해주셔야 합니다.)
즉 6번행부터 입력하게 합니다.
이것은 마지막 데이터 다음줄에 값을 입력 하는 입력 프로시저에 사용하는 것이고
여기에 -1 을 하신다면 마지막 줄을 조회하여 폼에 나타나게 하는 조회 프로시저를 작성 하는 것입니다.
이름=cells(입력행,1)
과 같이 나타내는 것은 이름에 셀에 입력된 값을 입력 하라는 것으로 셀에 입력된 값을 폼에 입력하게 하는
조회 하실때 사용하는 것이구요.
cells(입력행,1)=이름
은 셀에 폼의 컨트롤에 입력된 이름 값을 셀에 입력 하라는 것으로
입력 프로시저를 작성할 때 사용하는 것입니다.
프로시저에서 =은 같다가 아니라
오른쪽에 있는 데이터를 왼쪽으로 넣는다 라는 개념으로 생각 하셔야 합니다.
즉
입력행 = [a3].row + [a3].currentregion.rows.count -1
이름=cells(입력행,1)
과 같이 작성하시면 조회를 하는 프로시저이고
입력행 = [a3].row + [a3].currentregion.rows.count
cells(입력행,1)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
좋은 하루 되세요.