輸入字串轉換為數據
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 |