为什么此 vb.6 ln(x) 代码不适用于大于 2 的数字?

Why doesn't this vb.6 ln(x) code work for numbers larger than 2?

我为 ln 编写了这段代码作为作业,但它不适用于大于 2 的数字!

If Val(txt.Text) <= 0 Then
  MsgBox "can't find ln !", vbExclamation + vbOKOnly, "ERROR": Exit Sub
Else
  sign = -1 
  Sum = x - 1
  r = 2

  For j = 2 To 3 Step 0
    t = sign * ((x - 1) ^ r / r)

    If Abs(t) >= 0.0000001 And Abs(t) <= 100000000# Then
      Sum = Sum + t
      sign = -sign
      r = r + 1
    Else
      GoTo 12
    End If
  Next
End If

这是方程式的图像:

非常感谢您的帮助,特别是 MarkL,我做到了!我为此感到非常高兴:)

如果你有兴趣,这里是最终代码^_^ :

        If Val(txt.Text) <= 0 Then
        MsgBox "can't find ln !", vbExclamation + vbOKOnly, "ERROR"
         Exit Sub

        ElseIf x < 0.51 Then
        sign = -1
        Sum = x - 1

        For i = 2 To 500
        t = sign * ((x - 1) ^ i / i)
        If Abs(t) >= 0.0000001 Then
        Sum = Sum + t
        sign = -sign
        Else
        GoTo 12
        End If
        Next

        Else
        Sum = 0
        For i = 1 To 600
        t = ((x - 1) / x) ^ i
        If Abs(t) < 10000000 Then
        Sum = Sum + (t / i)
        Else
        GoTo 12
        End If
        Next
        End If