Sub DataStrIn(Xpos, Ypos)

Dim I As Long, keyin As String

Dim f(100) As Single, x(100) As Single

 

Do

    keyin1 = InputBox("輸入x值,以空白區隔。" & vbNewLine & "例:1 2 3", "x", keyin1)

    If Not SepStrToNumArray(keyin1, " ", 1, n, x) Then Call WrongValue(1)

 

    keyin2 = InputBox("輸入f(x),以空白區隔。" & vbNewLine & "例:10 20 30", "f(x)", keyin2)

    If Not SepStrToNumArray(keyin2, " ", 1, m, f) Then Call WrongValue(1)

 

    If m <> n Then Call WrongValue(2)

Loop While m <> n

 

Cls

For I = 1 To n

    Print I, x(I), f(I)

Next

End Sub

 

 

Sub WrongValue(ID)

Select Case ID

Case 1

    MsgBox "所輸入的數值無效", vbExclamation, "警告"

Case 2

    MsgBox "所輸入的數值m<>n無效", vbExclamation, "警告"

End Select

End Sub

 

 

Function SepStrToNumArray(StrHandled, SepChr, BaseNumber, Number, RetrunData) As Boolean

Dim I As Long, J As Long, Temp As String

 

StrHandled = Trim(StrHandled)

Number = BaseNumber - 1

 

Do

    I = InStr(J + 1, StrHandled, SepChr, vbBinaryCompare)

    If I <> J + 1 Then

        Number = Number + 1

        If I <> 0 Or (I = 0 And J < Len(StrHandled)) Then

            If I <> 0 Then

                Temp = Mid(StrHandled, J + 1, I - J - 1)

            Else

                Temp = Mid(StrHandled, J + 1)

            End If

            If Not IsNumeric(Temp) Or InStr(Temp, ",") > 0 Then Exit Function

            RetrunData(Number) = Temp

        End If

    End If

    J = I

Loop Until I = 0

 

SepStrToNumArray = True

End Function

 

 

Sub DataKeyIn_Click()

Call DataStrIn(500, 4500)

End Sub