VBA Excel For循环不按预期方式运行

所以我有两个Subs,一个叫Show_Hide,一个叫hideAllRows。 这两个subs都被用来折叠excel表中的大量行,我有一个for循环,它检查内容的单元格部分,并告诉代码不要折叠这些单元格。 for循环embedded在不工作的hideAllRows子内部。 代码不会返回任何错误,只是在执行hideAllRows时隐藏内容的单元格不起作用。

当button被按下时,ShowHide子程序在hideAllRows子程序中被调用,这允许我使用hideAllRows子来引用我想显示或隐藏的行,这部分工作。 我正在使用For循环来检测行是否有内容,如果是这样,表格不应该隐藏它们,而是表单应显示这些行并隐藏不包含内容的单元格。 任何build议,我在做什么错在这里? 下面的代码

Sub Show_Hide(RowColumn As String, RangeSelected As String, Hide As Boolean) Application.Calculation = xlCalculationManual If RowColumn = "Column" Then Columns(RangeSelected).Select Selection.EntireColumn.Hidden = Hide Else Rows(RangeSelected).Select Selection.EntireRow.Hidden = Hide End If Application.Calculation = xlCalculationAutomatic End Sub Sub hideAllRows() Call Show_Hide("Row", "7:57", True) Call Show_Hide("Row", "59:68", True) Call Show_Hide("Row", "70:169", True) Call Show_Hide("Row", "171:180", True) Call Show_Hide("Row", "182:281", True) Call Show_Hide("Row", "283:332", True) Call Show_Hide("Row", "334:383", True) Call Show_Hide("Row", "385:434", True) Call Show_Hide("Row", "436:485", True) Call Show_Hide("Row", "487:496", True) Call Show_Hide("Row", "498:507", True) Call Show_Hide("Row", "509:518", True) Call Show_Hide("Row", "529:578", True) Call Show_Hide("Row", "580:589", True) Call Show_Hide("Row", "591:701", True) Call Show_Hide("Row", "703:802", True) Call Show_Hide("Row", "804:853", True) Call Show_Hide("Row", "855:904", True) Call Show_Hide("Row", "906:955", True) Call Show_Hide("Row", "957:1006", True) Call Show_Hide("Row", "1008:1017", True) Call Show_Hide("Row", "1019:1028", True) Call Show_Hide("Row", "1030:1039", True) Call Show_Hide("Row", "1041:1090", True) Call Show_Hide("Row", "1092:1141", True) Call Show_Hide("Row", "1143:1192", True) Call Show_Hide("Row", "1194:1244", True) Call Show_Hide("Row", "1261:1268", True) For i = 7 To 1269 If i = 7 Then i = 1269 Stuff = ActiveSheet.Cells(i, 1).Value If Stuff <> "" Then Rows(i & ":" & i).Select Selection.EntireRow.Hidden = False End If Next i Call UpdateButton(ActiveSheet.Shapes("Button13" & ActiveSheet.Name), "Show All Rows", "showAllRows") End Sub 

在这里, If i = 7 Then i = 1269'你迫使For循环退出。

您需要重新检查该部分。