所以我有两个Subs,一个名为Show_Hide,另一个名为hideAllRows。这两个子都用于折叠Excel工作表中的大量行,我有一个for循环,它检查具有内容的单元格的部分,并告诉代码不要折叠这些单元格。 for循环嵌入在hideAllRows子区域内,该子组不起作用。代码不会返回任何错误,只有在执行hideAllRows时隐藏具有内容的单元格时,它才会起作用。
当按下按钮时,在hideAllRows子中调用ShowHide子,这允许我使用hideAllRows子来引用我想要显示或隐藏的行,这部分可以工作。我使用For循环来检测行是否有内容,如果有,则表单不应该隐藏它们,而是表单应显示这些行并隐藏不包含内容的单元格。我在这里做错了什么建议?代码
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
答案 0 :(得分:3)
此处,在If i = 7 Then i = 1269'
您强制For
循环退出。
您需要重新检查该部分。