참조행 = List품목명.ListIndex
입력행 = [a3].Row + [a3].CurrentRegion.Rows.Count
Cells(입력행, 1) = txt구매일자
Cells(입력행, 2) = List품목명.List(참조행, 0)
Cells(입력행, 3) = txt수량
Cells(입력행, 4) = Format(txt단가 * txt수량, "#,###")
List품목명 = ""
txt단가 = ""
txt수량 = ""
저는 이렇게 입력했는데(정답이 아니고) 채점프로그램은 맞췄다고 나왔습니다.
그런데 정답을 보면 Cells(입력행, 1) = txt구매일자가 Cells(입력행, 1) = cdate(txt구매일자)
로 나왔거든요.
cdate 안해주면 틀리나요?
그리고 정답을 보면 list품목명도 list품목명.list(참조행,0) 이렇게 안해주고 그냥 list품목명만 써줬는데
어떤 경우에 지금처럼 list품목명만 그냥 입력해 주면 되나요?
그리고 list품목명만 입력하려면 list품목명을 클릭하고 바운드 열이 어디에 있는지 확인 해야 하죠?
이게 더 번거로운거 같은데 ^^;;
cdate 함수는 텍스트 형식의 데이터를 날짜 형식으로 변경해 주는 함수입니다. 컨트롤에 입력된 값이 2009-09-02와 같이 날짜 형식으로 되어 있다고 해도 이것을 텍스트로 인식하는 경우가 있습니다. 그러므로 cdate를 사용하여 날짜 형식으로 변경해 주는 것입니다. 이것을 사용하지 않아도 날짜 형식으로 입력되었다면 생략해도 상관 없습니다.
문제에 보시면 listindex 를 사용하는 문제와 list, listindex 사용하는 문제가 있습니다.
두 문제를 이해하시기 쉽게
listindex와 list,listindex의 차이점을 설명 드릴께요.
첫번째 코드는 목록상자나 콤보상자에서 특정 행을 추출할 때 사용하고, 두번째 코드는 워크시트의 셀안의 내용을 가져올때 사용 하게 됩니다.
참조행 = lst과목.ListIndex
입력행 = [a2].Row + [a2].CurrentRegion.Rows.Count
Cells(입력행, 1) = txtID
Cells(입력행, 2) = txt이름
Cells(입력행, 3) = lst과목.List(참조행, 0)
Cells(입력행, 4) = lst과목.List(참조행, 1)
Cells(입력행, 5) = lst과목.List(참조행, 2)
Cells(입력행, 6) = lst과목.List(참조행, 3) - (lst과목.List(참조행, 3) * txt할인율)
여기에서 참조행에 lst과목.listindex 라고 정의해 두고
lst과목.list(참조행,0) 으로 사용 하고 있습니다.
이것은 참조행이 어디인지 지정해 놓고 lst과목에서 참조행의 위치와 0인.. 그러니깐 참조행이 만약 2이고 찾고자하는 것이 0행에 있다는 그런 뜻이 됩니다.
참조행 = lst열차종류.listindex + 4
입력행 = [a3].row + [a3].currentregion.rows.count
cells(입력행, 1) = txt번호
cells(입력행, 2) = cells(참조행, 8)
cells(입력행, 3) = cells(참조행, 9)
cells(입력행, 4) = txt매수
cells(입력행, 5) = txt매수 * cells(참조행, 10)
이 문장에서는 lst열차종류에서 참조되는 행의 위치를 이미 지정하였습니다. 그리고 사용 할때는 8,9와 같이 엑셀에서 위치하는 열을 미리 적어 둔 것입니다.
한마디로 말하면.. 첫번째 코드는 폼안의 list박스내의 자료를 찾아서 셀에 입력 하는 것이구요. 
두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다. 

좋은 하루 되세요.
-
*2011-09-09 20:06:54"
cdate 함수는 텍스트 형식의 데이터를 날짜 형식으로 변경해 주는 함수입니다. 컨트롤에 입력된 값이 2009-09-02와 같이 날짜 형식으로 되어 있다고 해도 이것을 텍스트로 인식하는 경우가 있습니다. 그러므로 cdate를 사용하여 날짜 형식으로 변경해 주는 것입니다. 이것을 사용하지 않아도 날짜 형식으로 입력되었다면 생략해도 상관 없습니다.
문제에 보시면 listindex 를 사용하는 문제와 list, listindex 사용하는 문제가 있습니다.
두 문제를 이해하시기 쉽게
listindex와 list,listindex의 차이점을 설명 드릴께요.
첫번째 코드는 목록상자나 콤보상자에서 특정 행을 추출할 때 사용하고, 두번째 코드는 워크시트의 셀안의 내용을 가져올때 사용 하게 됩니다.
참조행 = lst과목.ListIndex
입력행 = [a2].Row + [a2].CurrentRegion.Rows.Count
Cells(입력행, 1) = txtID
Cells(입력행, 2) = txt이름
Cells(입력행, 3) = lst과목.List(참조행, 0)
Cells(입력행, 4) = lst과목.List(참조행, 1)
Cells(입력행, 5) = lst과목.List(참조행, 2)
Cells(입력행, 6) = lst과목.List(참조행, 3) - (lst과목.List(참조행, 3) * txt할인율)
여기에서 참조행에 lst과목.listindex 라고 정의해 두고
lst과목.list(참조행,0) 으로 사용 하고 있습니다.
이것은 참조행이 어디인지 지정해 놓고 lst과목에서 참조행의 위치와 0인.. 그러니깐 참조행이 만약 2이고 찾고자하는 것이 0행에 있다는 그런 뜻이 됩니다.참조행 = lst열차종류.listindex + 4
입력행 = [a3].row + [a3].currentregion.rows.countcells(입력행, 1) = txt번호
cells(입력행, 2) = cells(참조행, 8)
cells(입력행, 3) = cells(참조행, 9)
cells(입력행, 4) = txt매수
cells(입력행, 5) = txt매수 * cells(참조행, 10)이 문장에서는 lst열차종류에서 참조되는 행의 위치를 이미 지정하였습니다. 그리고 사용 할때는 8,9와 같이 엑셀에서 위치하는 열을 미리 적어 둔 것입니다.
한마디로 말하면.. 첫번째 코드는 폼안의 list박스내의 자료를 찾아서 셀에 입력 하는 것이구요.
두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다.

좋은 하루 되세요.