2017-12-12 20 views
0

위의 드롭 다운 목록에서 선택한 값을 기준으로 스프레드 시트의 행을 숨김 해제하려고합니다.VBA - 마지막 항목의 전체 행을 드롭 다운으로 표시

특정 값을 기준으로이 행을 표시하고 싶지는 않지만 마지막 행 이외의 다른 것이 선택되었을 때만 표시합니다.

예를 들어, 드롭 다운 목록에 Windows 버전이 있습니다 (마지막 항목은 Windows 10 임). 마지막 항목을 선택하면 'Windows 버전 업그레이드가 곧 시작됩니까?'라는 질문 아래 행이 표시됩니다. 숨어있을거야. 다른 값은이 행을 숨김 해제합니다.

향후 스프레드 시트를 유지할 때 새로운 버전의 Windows가 출시되면이를 드롭 다운 목록 하단에 추가 할 수 있으며 코드를 변경하지 않아도됩니다. 실행 마지막 행.

이것이 가능합니까? 아니면 이것을하는 더 좋은 방법이 있습니까?

+0

네, 가능합니까? 시도한 것은 무엇입니까? 콤보 또는 셀 유효성 검사입니까? 드롭 다운에 대한 자세한 내용을 제공 할 수 있습니까? –

+0

Offcourse .. 다른 조건이있을 수 있으므로 약간 까다로울 것입니다. 감사합니다 –

+0

그것은 콤보 상자입니다. 따라서 셀은 다른 시트에서 가져온 데이터의 드롭 다운입니다. 지금까지 시도한 것은 셀이 'Windows 10'인 경우 행을 숨기도록 코드를 작성하는 것입니다. 새 버전이 나왔을 때 수정하는 것은 작은 일이지만 가능한 한 자동화 된 상태로 유지하려고합니다. 또한 Office/Exchange 버전에도 동일하게 적용됩니다. – clidbury

답변

0

위의 열의 값에 따라 행을 숨기려면 셀 A9에서 워크 시트의 이벤트를 사용합니다.

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address(external:=False) = "$A$9" And Target = "Windows 10" Then 
     Target.Offset(1).EntireRow.Hidden = True 
    Else 
     Target.Offset(1).EntireRow.Hidden = False 
    End If 
End Sub 

그러나 Wind의 마지막 버전을 하드 코딩하지 않길 원할 것입니다. 그러나 이것에 대한 가능한 해결책은 드롭 다운 목록을 채우는 방법에 따라 크게 달라집니다.

+0

감사합니다. 이상적으로 나는 너무 많이 앞으로 유지하는 것처럼 코드에서 'Windows 10'을 원하지 않습니다. 셀은 다른 시트의 데이터에서 드롭 다운됩니다. 그래서 그 목록의 마지막 항목 이외의 것이 선택되지 않으면 행을 숨기고 싶습니다. EDIT : 마지막 행은 명확성을 위해 최신 Windows 버전입니다. – clidbury