1권 / 364 쪽 과 379쪽/ 참조행 입력에 관하여
364쪽 등록 버튼 클릭 프로시저를 코딩할 때
참조행 = lst열차종류.listindex 로 되어있는데
저는 참조행 = lst열차종류.listindex + 4 이라고 생각했습니다.
379쪽 입력 버튼 클릭 프로시저를 아래와 같이 코딩할 때처럼요.
참조행 = cmb종목.listindex + 4
시트에 있는 목록상자나 콤보상자에 들어갈 데이터들을 사용해서 참조행을 작성할 때 , 그 데이터들의 행과 열값 (콤보상자 데이터든, 목록상자의 데이터든) 을 추출하는데
그러한 데이터들의 상대적 위치값이 0부터 시작하기 때문에 , 그 시작하는 행값을 기준으로 그 이상에 있는 행들의 값을 항상 더해줘서 참조행을 작성해주는 것이 아닌가요?
그런데 왜 364쪽의 버튼 클릭 프로시저 코딩은 상대적인 위치값만 기재하는 것인지 이해가 안 갑니다. 감사합니다!
++아 고민하다가 알았어요!! 제가 깨달은 게 맞는가 검토부탁드려요!!
전자의 코딩식은
참조행 = lst열차종류.listindex 로 입력해줌으로써
데이터 시트 내의 행과 열값을 반환시키는 게 아니라, 목록상자의 행과 열의 값( 즉 , 0부터 시작하는 행과, 1부터 시작하는 행)으로 반환시켜줘서
Cells (입력행,4) = lst열차종류.LIST참조행(0 , 1) 로 입력되는 것인거죠?
만약 이것이, 제가 위에서 질문한
참조행 = lst열차종류.listindex + 4 이것으로 작성이 되었다면
Cells (입력행,4) = cells(참조행,1)
로 입력해야 하는 것인가요?
아래 설명을 참고해 주세요.
첫번째 코드는 목록상자나 콤보상자에서 특정 행을 추출할 때 사용하고,
두번째 코드는 워크시트의 셀안의 내용을 가져올때 사용 하게 됩니다.
<첫 번째 코드>
참조행 = 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박스내의 자료를 찾아서 셀에 입력 하는 것이구요.
두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다.
참조행에 lst신상목록.listindex 라고 정의해 두고, lst신상목록.list(참조행,0) 으로 사용하고 있는 것입니다.
임의의 지정하셔서 올바른 답이 표시되면 정답으로 보셔도 무방합니다.
참조행의 설정에 주의하셔서 Cells와 List 를 이용해 주시면 됩니다.
+4를 적어주시면 위에 설명한 Cells를 이용해서 문제를 푸실 수 있습니다.
좋은 하루 보내세요.
-
관리자2020-03-04 21:15:39
아래 설명을 참고해 주세요.
첫번째 코드는 목록상자나 콤보상자에서 특정 행을 추출할 때 사용하고,
두번째 코드는 워크시트의 셀안의 내용을 가져올때 사용 하게 됩니다.
<첫 번째 코드>
참조행 = 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박스내의 자료를 찾아서 셀에 입력 하는 것이구요.
두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다.
참조행에 lst신상목록.listindex 라고 정의해 두고, lst신상목록.list(참조행,0) 으로 사용하고 있는 것입니다.
임의의 지정하셔서 올바른 답이 표시되면 정답으로 보셔도 무방합니다.
참조행의 설정에 주의하셔서 Cells와 List 를 이용해 주시면 됩니다.
+4를 적어주시면 위에 설명한 Cells를 이용해서 문제를 푸실 수 있습니다.
좋은 하루 보내세요.