Dim Datacomy_txt() As String   '打开txt文本数据值
Dim Timex_txt() As String      '打开txt时间数据值
Private Sub Command2_Click()
    Dim Linedata As String
    Dim Di As Integer
    
    Di = 0
    Timer2.Enabled = False
    CDialog1.Filter = "textfiles(*.txt)|*.txt"
    CDialog1.ShowOpen
    Open CDialog1.FileName For Input As #2
    Do While Not EOF(2)   ' 循环至文件尾。
       Line Input #2, Linedata  ' 读入一行数据并将其赋予Linedata
       ReDim Preserve Timex_txt(Di)
       ReDim Preserve Datacomy_txt(Di)
       Timex_txt(Di) = Split(Linedata)(0)
       Datacomy_txt(Di) = Split(Linedata)(1)
       Di = Di + 1
    Loop
    Close #2
    
    MsgBox Di & "行"
    MsgBox "打开文件成功。"
 
End Sub我的代码运行的时候,总是说我Timex_txt(Di) = Split(Linedata)(0) 这个下标越界,一时找不出原因,请高手帮我看看。

解决方案 »

  1.   

      Timex_txt(Di) = Split(Linedata, " ")(0)
      Datacomy_txt(Di) = Split(Linedata, " ")(1)
      

  2.   


      Timex_txt(Di) = Split(Linedata)(0)
      Datacomy_txt(Di) = Split(Linedata)(1)Split(Linedata, ",")
    Split函数你没有使用分隔符
      

  3.   

    文本文件最后有空行,删除空行。也可以在Line Input #2, Linedata ' 读入一行数据并将其赋予Linedata
    读出Linedata后判断不是""再进行后面的处理。
      

  4.   


    如果中间有空行怎么办?
    最好使用split函数前判断变量linedata是否符合要求
      

  5.   


    楼上说的是,应该在代码中保证。Dim Datacomy_txt() As String '打开txt文本数据值
    Dim Timex_txt() As String '打开txt时间数据值
    Private Sub Command2_Click()
      Dim Linedata As String
      Dim Di As Integer
      Dim tmp() As String
      
      Di = 0
      Timer2.Enabled = False
      CDialog1.Filter = "textfiles(*.txt)|*.txt"
      CDialog1.ShowOpen
      Open CDialog1.FileName For Input As #2
      Do While Not EOF(2) ' 循环至文件尾。
      Line Input #2, Linedata ' 读入一行数据并将其赋予Linedata
      tmp = Split(Linedata)
      If Ubound(tmp) Then
        ReDim Preserve Timex_txt(Di)
        ReDim Preserve Datacomy_txt(Di)
        Timex_txt(Di) = tmp(0)
        Datacomy_txt(Di) = tmp(1)
         Di = Di + 1
      End If
      Loop
      Close #2
        
      MsgBox Di & "行"
      MsgBox "打开文件成功。"
     
    End Sub
      

  6.   

     Di = 0
    Timex_txt()=empty
    Datacomy_txt=empty

      Timer2.Enabled = False
      CDialog1.Filter = "textfiles(*.txt)|*.txt"
      CDialog1.ShowOpen
      Open CDialog1.FileName For Input As #2
      Do While Not EOF(2) ' 循环至文件尾。
      Line Input #2, Linedata ' 读入一行数据并将其赋予Linedata
      ReDim Preserve Timex_txt(Di)
      ReDim Preserve Datacomy_txt(Di)
      Timex_txt(Di) = Split(Linedata)(0)
      Datacomy_txt(Di) = Split(Linedata)(1)
      Di = Di + 1
      Loop
      Close #2
        
      MsgBox Di & "行"
      MsgBox "打开文件成功