지정된 범위 시트에 변경 한 경우 매크로 실행
VBA 관행 전반에 걸쳐 특정 범위 또는 셀이 변경 될 때 매크로를 실행해야합니다. 이 경우 대상 범위가 변경 될 때 매크로를 실행하기 위해 change 이벤트를 사용합니다.
`link : / excel-macros-and-vba-events-in-vb [VBA의 이벤트]는 특정 이벤트가 발생할 때 매크로를 실행할 수 있도록합니다.
구문 VBA 범위 변경 이벤트
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("your_range")) Is Nothing Then call your_macro End If End Sub
이벤트는 모듈에서 작동하지 않습니다. 개체 (워크 시트, 차트, 통합 문서)에 작성해야합니다.
Lat에는 지정된 범위에서 변경이있을 때 매크로를 실행하는 방법을 배우는 예제가 있습니다.
예 : A2 : A100 범위가 변경 될 때 VBA 매크로 실행 먼저 이벤트가 발생할 시트를 선택합니다. VBA 편집기에서 해당 시트를 두 번 클릭하고 아래 코드 또는 위의 일반 코드를 복사하고 요구 사항에 따라 변경하십시오.
이 예에서는 시트 2의 A2 : A100 범위가 변경 될 때 매크로 / VBA 코드를 실행하려고합니다. 이렇게하려면 프로젝트 탐색기에서 sheet2를 두 번 클릭합니다. 해당 시트의 코딩 페이지가 열립니다. 시트를 마우스 오른쪽 버튼으로 클릭하고보기 코드를 클릭하여 동일한 작업을 수행 할 수 있습니다.
변경 이벤트를 사용해야합니다. 이를 위해 기본 subroutineWorksheet_Change (ByVal Target As Range)를 사용합니다. 지정된 변경이있을 때 트리거됩니다. 그래서 우리의 코드는 다음과 같습니다 :
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:A100")) Is Nothing Then Call TestEvent End If End Sub
Sheet2의 A2 : A100 범위를 변경하면 위의 gif에서 볼 수 있듯이 서브 루틴 TestEvent가 호출됩니다.
TestEvent는 module2의 공용 서브 루틴입니다. 이벤트가 작동 중이라는 메시지 만 표시됩니다.
Sub TestEvent() MsgBox "Event is working!" End Sub
어떻게 작동합니까?
조건을 설정했습니다.
If Not Intersect (Target, Range ( “A2 : A100”)) Is Nothing Then HereIntersect (Target, Range ( “A2 : A100”)) Is Nothing은 범위 A2 : A100에 변경 사항이 없으면 True를 반환합니다. “Intersect (Target, Range (“A2 : A100 “))”에 의해 주어진 출력을 뒤집는이 문 앞에 Not 연산자를 넣습니다. 따라서 A2 : A100 범위에서 변경 사항이 없으면 표현식은 Falls를 반환하고 subTestEvent는 호출을받지 않습니다. A2 : A100 범위의 셀을 변경하면 표현식이 True를 반환하고 이벤트가 발생합니다. 그리고 그것이 여기서 일어나는 일입니다.
_ 참고 :이 블록에 모든 서브 루틴을 넣을 수 있습니다. 어떤 모듈에서도 가능합니다. 그러나 공개 서브 루틴이어야합니다. 범위는 얼마든지 설정할 수 있습니다. 전체 시트가 한계입니다 ._
예, 여러분, 이렇게하면 지정된 범위에서 변경이있을 때 서브 루틴을 호출하거나 매크로 / VBA 코드를 실행할 수 있습니다. 기본적인 이벤트 사례였습니다. 이 이벤트는 변경이 텍스트 기반 인 경우에만 트리거됩니다. 텍스트 기반이란 셀에 아무것도 쓰거나 삭제하면 이벤트가 트리거된다는 것을 의미합니다. 셀 서식을 변경하면 트리거되지 않습니다. 이를 수행하는 다른 방법이 있습니다.
도움이 되었기를 바랍니다. 이 VBA 주제 또는 기타 Excel 관련 주제와 관련된 질문이 있으면 아래의 의견 섹션을 알려주십시오. 그리고 아래에 언급 된 다른 관련 및 인기 게시물을 확인하십시오.
관련 기사 :
link : / events-in-vba-simplest-vba-code-to-highlight-current-row-and-column-using [현재 행과 열을 강조하는 가장 간단한 VBA 코드]
* |이 작은 VBA 스 니펫을 사용하여 시트의 현재 행과 열을 강조 표시합니다.
link : / events-in-vba-the-worksheet-events-in-excel-vba [Excel VBA의 워크 시트 이벤트]
* | 워크 시트 이벤트는 시트에서 지정된 이벤트가 발생할 때 매크로를 실행하려는 경우 매우 유용합니다.
인기 기사 :
link : / keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [50 개의 Excel 단축키로 생산성 향상]
| 작업 속도를 높이십시오. 이 50 개의 바로 가기를 사용하면 Excel에서 더 빠르게 작업 할 수 있습니다.
link : / formulas-and-functions-introduction-of-vlookup-function [Excel의 VLOOKUP 함수]
| 이것은 다른 범위와 시트에서 값을 조회하는 데 사용되는 Excel의 가장 많이 사용되고 인기있는 기능 중 하나입니다. link : / tips-countif-in-microsoft-excel [Excel 2016의 COUNTIF]
| 이 놀라운 기능을 사용하여 조건으로 값을 계산합니다. 특정 값을 계산하기 위해 데이터를 필터링 할 필요가 없습니다.
Countif 기능은 대시 보드를 준비하는 데 필수적입니다.
link : / excel-formula-and-function-excel-sumif-function [Excel에서 SUMIF 함수 사용 방법]
| 이것은 또 다른 대시 보드 필수 기능입니다. 이를 통해 특정 조건에 대한 값을 합산 할 수 있습니다.