Private Sub CommandButton4_Click()
Dim name_str, k, str
 name_str = Application.GetOpenFilename() 
 Open name_str For Input As #1
 Do While Not EOF(1)
    l1 = ""
    l2 = ""
    i = 1
       Line Input #1, str
        Do
         l1 = Mid(str, i, 1)
         i = i + 1
         l2 = l2 + l1
         Loop While l1 <> "\t"  //出错!!!
         Worksheets(4).Cells(k, 1).Value = l2 //出错!!
        k = k + 1
        Loop
     Close #1
End Sub
=======================================================
这个函数的功能是打开文件并将记录存入我的EXCEL 表4里
记录的各个字段时用 Tab or空格分开,可是我的l1读到的Tab or 空格 是□
也就导致我的第一层循环没有终止条件,l2将得到整条记录,这该如何?L2的目的是获取一个字符串

解决方案 »

  1.   

    不是很明白代码l1 = Mid(str, i, 1)取值的意思, 这里取值是取到该行中i位置的一个字符,不知道何用
      

  2.   

    每次取出一个字符,并来判断是否取得 空格和tab键 ,如果取道它们那就说明这是个字段
    i是取字符的位置
      

  3.   

    "每次取出一个字符,并来判断是否取得 空格和tab键 ,如果取道它们那就说明这是个字段
    i是取字符的位置
    l1 = Mid(str, i, 1)"
    这样没有必要,想找空格和Tab使用instr()方便多了。
      

  4.   

    Loop While l1 <> "\t"  //出错!!!
    这句根本不对,基本的vb语句。
    判断字符l1是否是空格应该是l1<>" "直接是空格,不要把C语言用到Basic语言中。