배영자강사님 비밀노트 2도 구매해서 기초부터 차근차근 다시공부하고있는 초짜 유져입니다 ㅎㅎ Dim rng as range Set rng = range("a1").currentregion If not rng.specialcells(xlcelltypeblanks) is nothing then Rng.specialcells(xlcelltypeblanks) = "*" End if Specialcells에서는 on error resume next 구문말고 if문으로는 안되는건가요?? 13강 intersect문에서 if not... is nothing then 구문보다가 너무 궁금해서 글남겨봅니다.. ㅠ not is nothing 언제사용하는 구문인지 명확히 이해가안되서 그런거같습니다만 ㅠㅠ
오~~ 응용력이 대단하십니다!!! 그럼 정리를 한 번 해보겠습니다. 1. 코딩하신 if 조건문을 실행하기에 앞서 워크시트 데이터 영역에 빈 셀이 없도록 셀을 모두 채워놓고 아래의 코드를 실행해보세요. If not rng.specialcells(xlcelltypeblanks) is nothing then Rng.specialcells(xlcelltypeblanks) = "*" End if 어떠십니까? 에러가 발생하지요? 에러가 발생하면 프로시저가 중간에 멈추기 때문에 중간에 멈추지 않도록 조치를 취해야 합니다. SpecialCells 메서드는 해당 옵션이 없으면( 빈 셀, 오류 셀 etc) 무조건 에러가 발생하는 특징을 갖고 있습니다. 'If Not ...is Nothing Then..' 구문으로도 에러 제어 불가합니다. 따라서 SpecialCells 메서드는 'On Error Resume Next' 코드와 궁합을 맞춰야 합니다. 2. 'If Not..is Nothing Then..' 은 부정의 부정은 -> 강한 긍정의 의미입니다. 따라서 이 코드는 크게 2가지 경우에 많이 쓰입니다. 첫 번째는 미리 정의해둔 영역에 값이 들어와 있는지 판단할 때. (시즌2 비밀노트, p13, 02-5, 마지막 코드를 보세요. If Not uni is Nothing Then uni.Delete) 두 번째는 Intersect 메서드로 교집합의 영역을 구할 때. (시즌2 비밀노트, p10, 첫번째 회색 박스, 위에서 6번째 코드를 보세요) VBA 공부하실 때 처음부터 너무 완벽하게 이해하려면 진도도 안나가고 지칩니다. 몇 번 반복하게 되면 자연스럽게 개념이 구조화, 도식화가 이루어집니다. 천천히 주행하셔요. 화이팅입니다 ^^
이 에러제어 관련해서는 이번주에 영상으로 만들어서 자세한 설명 드릴께요. 그리고 '주석처리를 한 것과 동일한 개념이다' 아닙니다. 이 문장 또한 이해가 되기는 합니다만, 바른 개념을 갖는데 방해요소로 작용됩니다. 일단은 on error resume next와 on error goto 0은 가능한 한 짝으로 쓰는 것을 추천드리니 외우고 계세요.
콜라보 감사합니다.
안녕하세요 선생님 오늘도 좋은 강의 감사합니다.
안녕하세요, Uc J님
이번 비가 그치고 나면 벚꽃이 만개할 듯합니다.
좋은 주말되세요 :D
강의 정말 좋습니다. 책만 파서 이해 안되던것들이 이해가 되고있어요... 감사합니다.
저도 감사합니다~😃
배영자강사님 비밀노트 2도 구매해서 기초부터 차근차근 다시공부하고있는 초짜 유져입니다 ㅎㅎ
Dim rng as range
Set rng = range("a1").currentregion
If not rng.specialcells(xlcelltypeblanks) is nothing then
Rng.specialcells(xlcelltypeblanks) = "*"
End if
Specialcells에서는 on error resume next 구문말고 if문으로는 안되는건가요??
13강 intersect문에서 if not... is nothing then 구문보다가 너무 궁금해서 글남겨봅니다.. ㅠ not is nothing 언제사용하는 구문인지 명확히 이해가안되서 그런거같습니다만 ㅠㅠ
오~~ 응용력이 대단하십니다!!!
그럼 정리를 한 번 해보겠습니다.
1. 코딩하신 if 조건문을 실행하기에 앞서
워크시트 데이터 영역에 빈 셀이 없도록 셀을 모두 채워놓고
아래의 코드를 실행해보세요.
If not rng.specialcells(xlcelltypeblanks) is nothing then
Rng.specialcells(xlcelltypeblanks) = "*"
End if
어떠십니까?
에러가 발생하지요?
에러가 발생하면 프로시저가 중간에 멈추기 때문에
중간에 멈추지 않도록 조치를 취해야 합니다.
SpecialCells 메서드는 해당 옵션이 없으면( 빈 셀, 오류 셀 etc) 무조건 에러가
발생하는 특징을 갖고 있습니다. 'If Not ...is Nothing Then..' 구문으로도 에러 제어 불가합니다. 따라서 SpecialCells 메서드는 'On Error Resume Next' 코드와 궁합을 맞춰야 합니다.
2. 'If Not..is Nothing Then..' 은 부정의 부정은 -> 강한 긍정의 의미입니다.
따라서 이 코드는 크게 2가지 경우에 많이 쓰입니다.
첫 번째는 미리 정의해둔 영역에 값이 들어와 있는지 판단할 때.
(시즌2 비밀노트, p13, 02-5, 마지막 코드를 보세요.
If Not uni is Nothing Then uni.Delete)
두 번째는 Intersect 메서드로 교집합의 영역을 구할 때.
(시즌2 비밀노트, p10, 첫번째 회색 박스, 위에서 6번째 코드를 보세요)
VBA 공부하실 때
처음부터 너무 완벽하게 이해하려면 진도도 안나가고 지칩니다.
몇 번 반복하게 되면 자연스럽게 개념이 구조화, 도식화가 이루어집니다.
천천히 주행하셔요.
화이팅입니다 ^^
@@엑셀디자인바쁘신와중에 답변주셔서 너무감사합니다!! 인프런에서 강사님 유료강좌로 듣다가 유튜브채널알게된게 저에게는 너무나도 큰 행운입니다. 항상 고맙게 생각하고있습니다 감사합니다!! 기회가 된다면 나중에 SQL도 샘이해주시면 더재미있을거같습니다. 엑셀 < Vba < 파워쿼리 < Sql 이렇게 배워보고싶어서요^^
셀 선택이 이렇게 다양한데 어디서 알려줄까 싶습니다. 큰 도움이 됩니다. 감사합니다.^^
셀을 자유롭게 핸들링하는 능력이
VBA의 핵심 스킬 중에 하나인 것을
구독자님도 알고 계시는 군요.
멋진 Excel Data Scientist되시길 바랍니다.
선생님 on error goto 0 으로 에러속성을 제거하는건 왜 필요한건가요?
일단 on error resume next 로 에러구문을 통과했는데 즉, 주석처리를 한것과 동일한 개념일텐데 굳이 또 에러를 초기화하는 이유가 특별히 있는건가요?
이 에러제어 관련해서는 이번주에 영상으로 만들어서 자세한 설명 드릴께요.
그리고 '주석처리를 한 것과 동일한 개념이다' 아닙니다.
이 문장 또한 이해가 되기는 합니다만, 바른 개념을 갖는데 방해요소로 작용됩니다.
일단은
on error resume next와 on error goto 0은 가능한 한 짝으로 쓰는 것을 추천드리니 외우고 계세요.
방금 VBA_81번 영상에 질문하신 내용을 담았습니다.
살펴보세요.
♡