#첫번째 질문
253페이지 문제 3번 에서 vb코드를 작성할 때
257페이지에 있는 해설에 보면
입력행=[a1].row+[a1].currentregion.rows.count
로 되어있는데 258페이지에 있는 해설을 보아도 왜 a1인지 이해가 가지 않습니다
챕터 18 237페이지 기본문제에 있는 비슷한 코드와 비교를 해보았을 때
237페이지에 있는 문제는
표의 가장 첫 셀인 b3셀을 기준으로 하여
기본행위치=[b3]
기본범위행수=[b3].currenregion.rows.count-1
라고 되어있습니다.
각 페이지의 두 표가 차이가 없어보이는데 258페이지 문제 3번에 대한 코드설명에 [a1]셀에 있는 행이 데이터 표의 맨 첫 째 줄로 인식한다는 말이 잘 이해가 가지 않습니다.
#두 번째 질문
챕터 18 기본문제에서
기본범위행수=[b3].currenregion.rows.count-1
의 식에서 -1이 어떤 걸 의미하는지 이해가 가지 않습니다.
시트의 표를 살펴보면 전체 표는 4개으로 구성되어 있지만 기준행인 3행을 빼면 3개의 행으로 있다는 건 알겠지만
어떤 문제에서 -1을 추가해야하는지 모르겠습니다
감사합니다
엑셀에서 연속된 자료가 있는 곳을 하나의 표로 봅니다.
아래 그림에서는 고객번호 필드명 부터 연결 되어 있기때문에 여기부터 하나의 표로 봅니다. 그래서 [a3]이 되는 것이구요.

아래그림은 제목 부터 연속적으로 표시되고 있기 때문에 [a1]이 됩니다.
이렇게 데이터가 처음 시작하는 부분을 위치로 잡으시면 됩니다.
a1부터 연결 되어 있으므로 1 + 4=5 로 5행부터 입력이 가능 한 것이죠.
쉽게 설명 한다면
입력행=[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)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
데이터를 추가하거나 삭제하여도 항상 마지막 데이터 다음에 입력되어야 함
은 입력행 = [a3].row + [a3].currentregion.rows.count 을 입력하면 됩니다.
좋은 하루 되세요.
-
관리자2021-06-28 22:06:44
엑셀에서 연속된 자료가 있는 곳을 하나의 표로 봅니다.
아래 그림에서는 고객번호 필드명 부터 연결 되어 있기때문에 여기부터 하나의 표로 봅니다. 그래서 [a3]이 되는 것이구요.
아래그림은 제목 부터 연속적으로 표시되고 있기 때문에 [a1]이 됩니다.
이렇게 데이터가 처음 시작하는 부분을 위치로 잡으시면 됩니다.a1부터 연결 되어 있으므로 1 + 4=5 로 5행부터 입력이 가능 한 것이죠.
쉽게 설명 한다면
입력행=[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)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
데이터를 추가하거나 삭제하여도 항상 마지막 데이터 다음에 입력되어야 함
은 입력행 = [a3].row + [a3].currentregion.rows.count 을 입력하면 됩니다.
좋은 하루 되세요.