我在使我的代码正常工作时遇到一些问题。请看下面的代码:
Private Sub Worksheet_Calculate()
Dim GenRequire As Integer
GenRequire = Range("A21").Value
Rows("22:31").EntireRow.Hidden = True
Select Case GenRequire
Case Is = 0: Rows("22:31").EntireRow.Hidden = True 'No Rows shown
Case Is = 1: Rows("22:22").EntireRow.Hidden = False '1st Row shown
Case Is = 2: Rows("22:23").EntireRow.Hidden = False '1-2 rows shown
Case Is = 3: Rows("22:24").EntireRow.Hidden = False '1-3 rows shown
Case Is = 4: Rows("22:25").EntireRow.Hidden = False '1-4 rows shown
Case Is = 5: Rows("22:26").EntireRow.Hidden = False '1-5 rows shown
Case Is = 6: Rows("22:27").EntireRow.Hidden = False '1-6 rows shown
Case Is = 7: Rows("22:28").EntireRow.Hidden = False '1-7 rows shown
Case Is = 8: Rows("22:29").EntireRow.Hidden = False '1-8 rows shown
Case Is = 9: Rows("22:30").EntireRow.Hidden = False '1-9 rows shown
Case Is = 10: Rows("22:31").EntireRow.Hidden = False '1-10 rows shown
End Select
End Sub
我在Case Is = 10:
上遇到了错误
运行时错误1004:应用程序定义的错误或对象定义的错误。
我正在尝试创建一个单元格,A21包含0-10(整数值)之间的值,其中0表示22-31之间没有行,1表示22行,2表示22和23,3表示22,23 ,以及24等)。任何人都可以提供的帮助将非常有帮助,因为我对Excel中的VBA脚本真的很陌生。注意:我的Excel版本有Office 365。
答案 0 :(得分:0)
我会做一些简化:
Private Sub Worksheet_Calculate()
Dim r
r = Range("A21").Value
If Not IsNumeric(r) Then Exit Sub
r = Round(r, 0)
With Rows(22)
If r >= 1 And r < 10 Then
Range(.Offset(0), .Offset(r - 1)).Hidden = False
Range(.Offset(r), .Offset(9)).Hidden = True
Else
Range(.Offset(0), .Offset(9)).Hidden = r <> 10
End If
End With
End Sub