1.
LIST는 폼 안에 목록 상자가 있을 때만 사용하나요?
콤보 상자의 항목 위치를 지정하는 속성인데, 셀에 있는 참조표의 위치를 가를 킬 때는 listlindex 속성을 사용하나요?
listindex : 콤보 상자 항목에 번호를 메겨준다.
list : 콤보 상자 항목의 위치를 알려준다.
두 속성의 차이점이 헷갈려요.
2.
IF ISNULL(LST과목.VALUE) THEN
문제에서 ISNULL함수를 사용하란 말이 없으면,
IF LST과목="" THEN
이렇게 입력해도 되나요?
1.
아래 설명을 참고해 주세요.
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박스내의 자료를 찾아서 셀에 입력 하는 것이구요.
두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다.
2. isnull 이 없어도 정확한 결과가 나온다면 사용하지 않아도 됩니다.
하지만 이 문제의 2번 첫번째 줄에서 과목을 선택했을 때에만 폼의 데이터를 워크시트 안에 추가하되, 라는 지시사항이 있으므로
lst과목 박스에 입력된 값이 선택되었는지 확인 하는 것입니다.
If IsNull(lst과목.Value) Then
lst과목.ListIndex = 0
lst과목의 값이 NULL이면,
lst과목.ListIndex = 0 으로 설정하는 것입니다.
첫 번째 항목으로 설정하는 것입니다.
좋은 하루 되세요.
-
관리자2019-11-18 21:38:01
1.
아래 설명을 참고해 주세요.
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박스내의 자료를 찾아서 셀에 입력 하는 것이구요.
두번째 코드는 워크시트에서 참조표가 있는 곳의 위치를 지정하여 입력할 데이터를 확인 하는 것입니다.2. isnull 이 없어도 정확한 결과가 나온다면 사용하지 않아도 됩니다.
하지만 이 문제의 2번 첫번째 줄에서 과목을 선택했을 때에만 폼의 데이터를 워크시트 안에 추가하되, 라는 지시사항이 있으므로
lst과목 박스에 입력된 값이 선택되었는지 확인 하는 것입니다.
If IsNull(lst과목.Value) Then
lst과목.ListIndex = 0lst과목의 값이 NULL이면,
lst과목.ListIndex = 0 으로 설정하는 것입니다.첫 번째 항목으로 설정하는 것입니다.
좋은 하루 되세요.
-
관리자2019-11-19 18:41:38
1. 네 4번 문제는 온라인 수강신청 폼에 있는 리스트 박스의 내용을 워크시트에 옮기는 것이 맞습니다.
참조행 = 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 + 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)와 같이 +4 가 사용되는 것은 워크시트에 입력된 참조표를 이용하는 것입니다.
2. "" 는 아무것도 입력하지 않은 것은 맞지만 이것만으로는 정확하게 구할 수 없는 경우가 많습니다.
보통 txt매수 ="" 와 같이 txt매수의 값을 초기화 할때 많이 사용하게 됩니다.
정확하게 지정하실려면 isnull 을 사용하셔야 하는 것입니다.
isnull() 은 유효한 데이터를 전혀포함하지 않으면 참(True)를 포함하면 거짓(false) 를 반환하는 함수 입니다.
좋은 하루 되세요.
-
*2019-11-19 13:10:44
1.
list,listindex : 워크시트의 셀안의 내용을 가져올때 사용.
문제 4번에서는 온라인수강신청 폼 안의 내용을 워크시트에 옮기는 거 아닌가요?
셀안의 내용이 아니라 폼 안의 내용을 가저올때 사용한거 아닌가요? ㅠㅠ
2,.
'과목을 선택하지 않았을 때' -> 아무것도 선택하지 않았을 때 -> 빈칸일 때 -> "" = isnull 아닌가요?
""하고 지시사항의 '과목을 선택했을 때에만 폼의 데이터를 워크시트 안에 추가'라는 지시상항에서는
else 하면 ""이 아닌 경우, 즉, 데이터가 입력되었을 때를 가르키니까 isnull과 ""은 같은 의미 아닌가요? ㅠㅠ