2017-01-09 1 views
0

저는 VBA에 대해 아직 익숙하지 않습니다. 그러나 약간의 연구 끝에 아래의 선택 사례를 작성해야합니다.선택 케이스 합리화

셀에 지정된 행 수를 숨기거나 숨기기를 원합니다. 나는 현재 작동하지만 매우 긴 호흡하고 누군가가 내가이 아래를 단축하고 또한 숨길 행의 수를 확장 할 수있는 방법을 설명 할 수있는 경우에만 30

Sub Toggle_Rows() 
Dim Sheet As Worksheet: Set Sheet = ThisWorkbook.Worksheets("Calendar") 
Change Sheet1 to the name of your sheet 

Select Case CStr(Sheet.Range("NoEmployees").Value2) 

Case "1" 
    Sheet.Rows("8:36").Hidden = True 
    Sheet.Rows("7:7").Hidden = False 
Case "2" 
    Sheet.Rows("9:36").Hidden = True 
    Sheet.Rows("7:8").Hidden = False 
Case "3" 
    Sheet.Rows("10:36").Hidden = True 
    Sheet.Rows("7:9").Hidden = False 
Case "4" 
    Sheet.Rows("11:36").Hidden = True 
    Sheet.Rows("7:10").Hidden = False 
Case "5" 
    Sheet.Rows("12:36").Hidden = True 
    Sheet.Rows("7:11").Hidden = False 
Case "6" 
    Sheet.Rows("13:36").Hidden = True 
    Sheet.Rows("7:12").Hidden = False 
Case "7" 
    Sheet.Rows("14:36").Hidden = True 
    Sheet.Rows("7:13").Hidden = False 
Case "8" 
    Sheet.Rows("15:36").Hidden = True 
    Sheet.Rows("7:14").Hidden = False 
Case "9" 
    Sheet.Rows("16:36").Hidden = True 
    Sheet.Rows("7:15").Hidden = False 
Case "10" 
    Sheet.Rows("17:36").Hidden = True 
    Sheet.Rows("7:16").Hidden = False 

ETC... 

Case Else 

End Select 

End Sub 

로 제한하는 선택 경우가/숨기기를하면 크게 감사하겠습니다. 내가 당신을 건의 할 것

답변

5

은 정말 당신이 영향을받을 수 행을 제한하고 싶었 가정으로 내가 거기에 선택 케이스 왼쪽이

Select case CLng(Sheet.Range("NoEmployees").Value2) 

Case 1 to 30 
    Sheet.Rows("7:36").Hidden = True 
    Sheet.Rows(7).resize(CLng(Sheet.Range("NoEmployees").Value2)).Hidden = False 
End Select 

뭔가를해야합니다.

+0

Kboard에서 너무 느립니다. :) –

4

변수 및 숨기기/숨기기를 취소 할 범위가 선형 상관 관계에 있습니다. 따라서 선택 사례가 필요하지 않지만 다음을 사용할 수 있습니다.

val = your value 
Sheet.Rows(7+val & ":36").Hidden = True 
Sheet.Rows("7:" & 6+val).Hidden = False 

모든 사례를 다룹니다.

0

테이블을 사용하여 CASE 값을 조회하면 원하는 2 자리 수를 찾을 수 있습니다. CASE 값이 연속적인 정수가 아니면 연속 된 정수로 변환 할 수있는 경우 배열을 사용할 수 있습니다. 그렇지 않으면 일종의 사전이 될 것입니다.