运行时错误9:数组

我是VBA编程的新手,正在尝试为RCCdevise开发一个简单的代码。 大部分值都是直接从Excel表格中分配的。 我得到这个错误,说“除零”** **中的行在debugging时突出显示。 似乎有一些问题与声明或循环,但我无法识别。 请帮助。 提前感谢。 代码如下:

Private Sub CommandButton1_Click() Dim a As Double, b As Double, result As String, Mu As Double Dim i As Integer, j As Integer, c As Integer, Xu1, Xu, es, d, f, fs As Double Dim strain1(1 To 6) As Double, stress1(1 To 6) As Double a = Range("E30").Value b = Range("O30").Value If a < b Then result = "Under Reinforced Section" Mu = Range("E32").Value * Range("E34").Value ElseIf a = b Then result = "Balanced Secction" Mu = Range("E32").Value * Range("E34").Value ElseIf a > b Then result = "Over Reinforced Section" j = 31 For i = 1 To 6 strain1(i) = Cells(j, 7)// loop to assign values in array from excel sheet j = j + 1 Next j = 31 For i = 1 To 6 stress1(i) = Cells(j, 8) j = j + 1 Next c = 1 Xu1 = Range("O30").Value d = Range("E31").Value Do While c = 1 Xu = Xu1 **es = 0.0035 * (d - Xu) / (Xu)**// Shows error apparently Xu is taking value zero If Range("E22").Value = 250 Then fs = es * Range("E23").Value f = 0.87 * Range("E22").Value If fs > f Then fs = f End If ElseIf Range("E22").Value = 415 Then f = 0.696 * Range("E22").Value / Range("E23").Value If es > f Then For i = 1 To 6 If es > strain1(i) And es < strain1(i + 1) Then// to locate es in the array and then interpolate fs = stress1(i) + ((stress1(i + 1) - stress1(i)) / (strain1(i + 1) - strain1(i))) * (es - strain1(i))// linear interpolation formulae End If Next ElseIf es < f Then fs = es * Range("E23").Value End If Xu1 = Range("O29").Value * fs / (0.36 * Range("E21").Value * Range("E16").Value) If Xu1 = Xu Then c = 0 End If Mu = 0.36 * Range("E21").Value * Range("E16").Value * Xu1 * Range("E34").Value End If Loop End If Range("O21").Value = Mu MsgBox result End Sub 

strain1(1到6)有6个元素1到6,对于i = 6,您尝试访问突出显示的行中的第7个元素(strain1(i + 1))。 (下一行的压力1也一样)