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 편집기에서 해당 시트를 두 번 클릭하고 아래 코드 또는 위의 일반 코드를 복사하고 요구 사항에 따라 변경하십시오.

image

이 예에서는 시트 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 함수 사용 방법]| 이것은 또 다른 대시 보드 필수 기능입니다. 이를 통해 특정 조건에 대한 값을 합산 할 수 있습니다.