책 내용 질문하기
시나공 기출문제집 컴퓨터활용능력 1급 실기 시험장 따라하기 74쪽 프로시저
도서
2020 시나공 기출문제집 컴퓨터활용능력 1급 실기 [기출문제집]
페이지
74
조회수
217
작성일
2020-08-05
작성자
탈퇴*원
첨부파일

Private Sub cmd입력_Click()
    참조행 = lst품목.ListIndex
    입력행 = [a1].Row + [a1].CurrentRegion.Rows.Count
End Sub

 

질문1. 위 코드 입력행 부분에서 [a1].Row부분은 데이터를 넣어야 할 표가 A2셀부터 시작해서 행수를 맞춰주기 위한 존재인가요? 만약에 표가 A1셀부터 시작했다면 없어도 되는 존재인지 궁금합니다.

 

질문2. 위 코드 입력행 부분에서 [a1].CurrentRegion.Rows.Count 부분은 [a1]셀이라는 객체가 연결되어있는 범위의 행수를 세는것인데 [a1]은 표 바깥부분인데 어떻게 표랑 연결이 되어있는 것인지 궁금합니다. 또한 Count메서드를 사용했을 경우 왜 입력되어있는 범위의 행수만 세는지도 궁금합니다.

 

질문3. 어차피 입력되어있는 마지막 행 아래에 새로운 데이터를 집어넣는것이라면 [a1].Row부분을 대신하여 그냥 1이나 [B1].Row를 써도 점수에 지장이 없는지 궁금합니다.
 

답변
2020-08-07 10:09:07

안녕하세요.

 

질문1. 위 코드 입력행 부분에서 [a1].Row부분은 데이터를 넣어야 할 표가 A2셀부터 시작해서 행수를 맞춰주기 위한 존재인가요? 만약에 표가 A1셀부터 시작했다면 없어도 되는 존재인지 궁금합니다.

->  아닙니다. 있어야 합니다. 데이터를 입력해야 하는 행은  [a1].CurrentRegion.Rows.Count로 구한 값의 다음 행입니다. 그러니 [a1].Row를 지정하거나 +1을 해줘야 합니다.

 

질문2. 위 코드 입력행 부분에서 [a1].CurrentRegion.Rows.Count 부분은 [a1]셀이라는 객체가 연결되어있는 범위의 행수를 세는것인데 [a1]은 표 바깥부분인데 어떻게 표랑 연결이 되어있는 것인지 궁금합니다. 

-> '[표1]' 이라고 쓰여 있는 부분이 데이터가 입력된 부분과 붙어 있죠? 그러므로 이것도 데이터로 인식을 하는 것입니다. 

 

또한 Count메서드를 사용했을 경우 왜 입력되어있는 범위의 행수만 세는지도 궁금합니다.

-> [a1].CurrentRegion.Rows.Count에서 Rows가 있기때문에 행 수만 세는 것입니다.

 

질문3. 어차피 입력되어있는 마지막 행 아래에 새로운 데이터를 집어넣는것이라면 [a1].Row부분을 대신하여 그냥 1이나 [B1].Row를 써도 점수에 지장이 없는지 궁금합니다.

-> 지장 없습니다.

 

즐거운 하루 되세요.

  • 관리자
    2020-08-07 10:09:07

    안녕하세요.

     

    질문1. 위 코드 입력행 부분에서 [a1].Row부분은 데이터를 넣어야 할 표가 A2셀부터 시작해서 행수를 맞춰주기 위한 존재인가요? 만약에 표가 A1셀부터 시작했다면 없어도 되는 존재인지 궁금합니다.

    ->  아닙니다. 있어야 합니다. 데이터를 입력해야 하는 행은  [a1].CurrentRegion.Rows.Count로 구한 값의 다음 행입니다. 그러니 [a1].Row를 지정하거나 +1을 해줘야 합니다.

     

    질문2. 위 코드 입력행 부분에서 [a1].CurrentRegion.Rows.Count 부분은 [a1]셀이라는 객체가 연결되어있는 범위의 행수를 세는것인데 [a1]은 표 바깥부분인데 어떻게 표랑 연결이 되어있는 것인지 궁금합니다. 

    -> '[표1]' 이라고 쓰여 있는 부분이 데이터가 입력된 부분과 붙어 있죠? 그러므로 이것도 데이터로 인식을 하는 것입니다. 

     

    또한 Count메서드를 사용했을 경우 왜 입력되어있는 범위의 행수만 세는지도 궁금합니다.

    -> [a1].CurrentRegion.Rows.Count에서 Rows가 있기때문에 행 수만 세는 것입니다.

     

    질문3. 어차피 입력되어있는 마지막 행 아래에 새로운 데이터를 집어넣는것이라면 [a1].Row부분을 대신하여 그냥 1이나 [B1].Row를 써도 점수에 지장이 없는지 궁금합니다.

    -> 지장 없습니다.

     

    즐거운 하루 되세요.

  • 관리자
    2020-08-19 10:07:00

    즐거운 하루 되세요.

     

    컨트롤이 2차원 배열이든, 1차원 배열이든 listindex 값은 동일합니다. 첫번째 행에 있는 값을 선택하면 0, 두번째 행에 있는 값을 선택하면 1입니다. 2차원 배열에서 각각의 값을 구분할 떄는 list(행, 열)를 사용합니다.

     

    즐거운 하루 되세요.

  • *
    2020-08-16 17:34:13

    이전 답변에서 추가 문의드립니다.

     

    Private Sub UserForm_Initialize()

        cmb날짜.AddItem (Date - 5)

        cmb날짜.AddItem (Date - 4)

        cmb날짜.AddItem (Date - 3)

        cmb날짜.AddItem (Date - 2)

        cmb날짜.AddItem (Date - 1)

        cmb날짜.AddItem (Date)

        

     

     

        cmb문구점.RowSource = "h9:h12"

        lst품목.RowSource = "i9:j12"

    End Sub

    이러한 초기화 상태에서 마지막 줄에 lst품목.RowSource가 2차원 배열 형식으로 2x4 형태의 목록으로 지정이 되었는데

     

    Private Sub cmd입력_Click()

        참조행 = lst품목.ListIndex

        입력행 = ([a1].CurrentRegion.Rows.Count) + 1

        

        Cells(입력행, 1) = CDate(cmb날짜)

        Cells(입력행, 2) = cmb문구점

        Cells(입력행, 3) = lst품목.List(참조행, 0)

        Cells(입력행, 4) = lst품목.List(참조행, 1)

    End Sub

     

    입력버튼을 눌렀을 때의 코드에서 참조행이 어째서 행을 나타내는 것인지 이해가 가지 않습니다. lst품목.ListIndex를 그대로 써버리면 인덱스가

    0  1

    2  3

    4  5

    6  7 형식으로 지정되어야 하는 것이 아닌가요? Cells(입력행,3)과 Cells(입력행,4)가 설명이 조금 더 필요할 것 같습니다. 참조행 부분을 어떻게 해석해야 할지 모르겠습니다... 

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.