Joydip에는 실시간 상품 시장 데이터로 지속적으로 자동 업데이트되는 Excel 워크 시트가 있습니다. 특정 셀 / 범위의 데이터가 미리 정의 된 기준을 충족하도록 변경 될 때마다 특정 메시지가 포함 된 메시지 상자를 표시하려고합니다. 데이터 유효성 검사는 데이터가 자동으로 변경 될 때 유효성 검사 기능이 트리거되지 않기 때문에 작동하지 않습니다.

데이터를 확인하고 원하는 메시지 상자를 표시하는 가장 좋은 방법은 Worksheet_Change 이벤트에 의해 트리거되는 매크로를 사용하는 것입니다. 이 이벤트는 셀의 내용이 변경 될 때마다 트리거됩니다. 그러나 셀에 표시되는 내용의 변경으로 인해 트리거되지는 않습니다. 예를 들어 새로운 상품 데이터가 셀에 배치되면 이벤트가 트리거됩니다. 그러나 수식이 다시 계산되고 해당 수식의 새 결과가 표시되면 이벤트가 트리거되지 않습니다. 왜?

공식 자체는 변경되지 않았기 때문입니다. 변경된 것은 공식 (표시되는 내용)의 결과 일뿐입니다.

Worksheet_Change 이벤트가 트리거되면 매크로는 메시지 표시를 포함하여 원하는 모든 작업을 수행 할 수 있습니다. 이 예에서는 확인할 범위가 A1 : C5 (상품 데이터가 삽입되는 위치)이고 메시지를 트리거하려는 기준이 범위의 평균이 5라고 가정합니다. 범위의 모든 셀이 변경되고 범위의 값 평균이 5이면 메시지가 표시됩니다.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim rng As Range     Set rng = Range("A1:C5")

If Not Intersect(Target, rng) Is Nothing Then         If Application.WorksheetFunction. _           Average(rng) = 5 Then             MsgBox "The average of " & _               rng.Address & " = 5"

End If     End If     Set rng = Nothing End Sub

이 매크로는 모니터링 할 워크 시트의 시트 개체에 배치하는 것이 중요합니다. VBA 편집기를 표시 할 때 프로젝트 탐색기 영역에서 원하는 워크 시트를 마우스 오른쪽 단추로 클릭 한 다음 나타나는 컨텍스트 메뉴에서 코드보기를 선택합니다. 이 코드 창은 매크로를 배치하는 곳입니다.

매크로는 워크 시트에 변경 사항이있을 때마다 트리거됩니다. 그런 다음 매크로는 교차 기능을 사용하여 변경이 원하는 A1 : C5 범위 내에서 발생했는지 확인합니다. 그럴 경우 범위의 평균이 확인되고 결과가 5이면 메시지가 표시됩니다.

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2906)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.