第十四行数据=
  65100   65360   65610   65850   66060   66240   66400   66600   66890   67100 Private Sub chulidata(ByVal fpath As String, ByVal cfpath As String)
  Dim hangdata As String
  Dim str As String
  Dim arr() As String
  Dim suanfa As String
  Dim shuju As String
  Dim k As Long
  Open fpath For Input As #1
  Open cfpath & File1.List(i) For Output As #2
 
  k = 0
  hangdata = ""
  While k < 13
    Line Input #1, hangdata
    Print #2, hangdata
   k = k + 1
   Wend
   Do While Not EOF(1)
    Line Input #1, hangdata
    str = hangdata
    shuju = ""
     Do While InStr(str, "  ") > 0
     str = Replace(str, "  ", " ")
     arr = Split(str, " ")
      Loop
      
    For j = 0 To UBound(arr)
   'MsgBox arr(j), vbInformation
   suanfa = arr(j)
    shuju = shuju & "  " & suanfa
   Next j
    Print #2, shuju
   Loop
   Close
End Sub
当用上面的方法可以输出原来数字,但如果把
suanfa = arr(j)改为了suanfa = arr(j) / 10
就会出现类型不匹配?
应该属于数字,可以相除吧。。
讨教来了

解决方案 »

  1.   

    刚才我又测试了下。采用MsgBox arr(j), vbInformation 会前后各出现一个空格。
    空格可能相除的时候出现问题了。
     Do While Not EOF(1) 
        Line Input #1, hangdata 
        str = hangdata 
        shuju = "" 
        Do While InStr(str, "  ") > 0 
        str = Replace(str, "  ", " ") 
        arr = Split(str, " ") 
          Loop 
    可能这里出现了问题。arr(i)中出现了空值的数组元素,
    该如何改呢。。函数这样用应该没错吧。把空格字符中的数字挑出来
    昨天搞到现在。。还是懵懂ing中。
      

  2.   

    看到了没有?把字符型当数字型用了?
    suanfa = Cstr(Val(arr(j)) / 10) 
      

  3.   

    看准了,昨天给你写了,看看顺序对了吗?不要什么问题都发?自己好好想想,弄明白别人给你写的代码是什么意思,要不就没什么意义了。只是为了求代码,一点意义也没有。Do While Not EOF(1) 
        Line Input #1, hangdata 
        str = hangdata 
        shuju = "" 
        Do While InStr(str, "  ") > 0 
            str = Replace(str, "  ", " ") 
        Loop 
        arr = Split(str, " ") '这句放到循环外面
    Loop
      

  4.   

    都弄明白了。
    你写的函数在我的数据中有问题。
     Do While Not EOF(1) 
        Line Input #1, hangdata 
        str = hangdata 
        shuju = "" 
        Do While InStr(str, "  ") > 0 
        str = Replace(str, "  ", " ") 
        arr = Split(str, " ") 
          Loop 
    其实加个函数就行了。
    就是str=trim(hangdata)
    把循环放在外面也没有。下面认识思考后,去找参考书看了下。
    谢谢楼上非常热心。