2014-12-23 4 views
-1

데이터 유효성 검사 콤보 상자를 기반으로 선택할 수있는 여러 옵션이있는 스프레드 시트가 있습니다. 선택한 콤보 상자의 값에 따라 동일한 행의 여러 다른 셀을 채 웁니다. 그래서 저는 다음과 같은 것을 가지고 있습니다.Excel 2010 다중 셀 워크 시트 변경 트리거

Combo Box | VBA Populated Cell | Another VBA Populated Cell | Another VBA Populated Cell 
Combo Box | VBA Populated Cell | Another VBA Populated Cell | Another VBA Populated Cell 
Combo Box | VBA Populated Cell | Another VBA Populated Cell | Another VBA Populated Cell 

데이터 유효성 검사 콤보 상자에서 값을 삭제하면 변경된 모든 셀이 다시 "기본"상태로 되돌아갑니다. 내가 할 수있게하려면 데이터 유효성 검사 콤보 박스의 여러 행을 선택하고 삭제 키를 누른 다음 선택 항목의 각 항목에 대해 Excel 루프를 반복합니다. 내가 겪고있는 문제는 worksheet_change() 함수가이 작업을 수행 할 때 실행되지 않는다는 것입니다.

내외부가 교차합니다. 삭제 키를 트랩하여 application.selection이 1보다 큰지 테스트하고 여러 행의 셀을 선택하면 Worksheet_Change() 함수가 실행되도록 관리 할 수 ​​없습니다. 삭제 키를 누르십시오.

이것은 Excel의 제한 사항입니까, 아니면 Google 검색을 통해 찾지 못했거나 찾을 수있는 것이 있습니까?

편집 : 내가 좀 더 명확하게 볼 수 있는지 확인하려면 : 콤보 상자는 데이터 유효성 검사 도구 (데이터 -> 데이터 유효성 검사)에서 가져온 것입니다. 워크 시트에 포함될 수있는 ActiveX 컨트롤이 아닙니다. 내가 작업하고있는 파일 ... 인보이스 양식과 같아. 첫 번째 열은 콤보 상자와 함께 몇 가지 거래 유형 중에서 선택할 수 있습니다. 따라서 인보이스 양식 아이디어를 계속 진행하기 위해 직불 카드 또는 대변 메모를 보겠습니다. 한 줄에 직불 카드가있는 경우 해당 행의 다른 셀에 특정 값을 채우고 싶은 경우 해당 셀에 다른 값을 채우고 싶습니다.

내가 지금하려는 것은 셀 범위를 선택할 수 있습니다. 따라서 10 행의 직불/신용 항목이있는 양식이 있다고 가정 해 보겠습니다. 그런 다음 셀 A5-A10을 선택하고 삭제 키를 누른 다음 5-10 행을 반복하고 B, C 및 C 셀에 루프를 설정하는 일부 VBA 코드를 갖기 위해 행 5-10이 다른 송장에 있음을 알고 있습니다. D를 기본 값으로 프로그래밍합니다. 그래서 개별 셀 대신 셀 범위에서 작동 할 때 Worksheet_Change를 트리거 할 수 있기를 원합니다.

+0

당신은 실제로 선택 상자는 워크 시트에 삽입해야합니까? 어떤 Excel 버전을 실행합니까? –

답변

1

범위의 셀 ("A1 : A4")을 변경하거나 삭제하면 아래 코드가 활성화되어야합니다. 범위의 셀 중 몇 개가 업데이트되었는지 알려줍니다. 이것은 당신이 말하는 "데이터 유효성 검사 콤보 상자"에 대한 목록을 기반으로 셀 내부 드롭 다운을 사용한다고 가정합니다. (데이터 -> 데이터 유효성 검사 루트를 사용했음을 의미합니다.) 용어가 약간 불명확 한 것처럼 보이기 때문에 이것이 의미하는 바입니다.

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Target, Range("A1:A4")) Is Nothing Then 
     Counter = 0 
     For Each myCell In Target 
      Counter = Counter + 1 
     Next 
     MsgBox (Counter & " cells have been updated.") 
    End If 
End Sub 

MSDN Worksheet Change Event
Application.Intersect Method Excel

+0

한 번에 하나의 셀에 잘 작동하지만, 셀 A1 _through_ A4를 선택하고 Worksheet_Change 함수를 트리거하면 선택된 모든 셀을 반복하고 일부 작업을 수행 할 수 있습니다. – Aerogems

+0

여러 셀을 선택할 때도 작동합니다. 예를 들어 A1 & A2를 선택하면 이벤트가 계속 실행됩니다. – user3696061

+0

KingOfTheNerds에게 코드를 편집하여 실제로 여러 셀 선택에 영향을 미치는지 명확히 설명해 주셔서 감사합니다. – user3696061

관련 문제