Pet*_*ord 0 select vba case excel-vba excel-2013
我仍然是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
Run Code Online (Sandbox Code Playgroud)
如果有人可以解释一种方法,我可以缩短它,并扩大它将隐藏/取消隐藏的行数,那么将非常感激.
我建议你只需要这样的东西
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
Run Code Online (Sandbox Code Playgroud)
我在那里留下了Select Case,因为我认为你想限制可能受影响的行.