请高手帮我看下  写入数据时会显示 数据类型不对,本人分不多还请海涵
Public Type lineData
data() As String
datalength As Integer
End Type
Private Sub Command1_Click()
 Dim srcDatas() As lineData
    
    Dim str As String
    Dim lineNum As Integer
    Dim FreeNum As Integer
    FreeNum = FreeFile
    lineNum = 0
    Open "D:\test.Asc " For Input As #FreeNum
        Do While Not EOF(FreeNum)
            Line Input #FreeNum, str
            str = Trim(str)
            If str <> "" Then
                Dim lineData() As String
                lineData = Split(str, ",")
                ReDim Preserve srcDatas(lineNum + 1)
                srcDatas(lineNum).data = lineData
                srcDatas(lineNum).datalength = UBound(lineData) + 1
                lineNum = lineNum + 1
            End If
        Loop
    Close FreeNumEnd Sub
Private Sub Command2_Click()
    Dim exl As Excel.Application
    Dim Workbook As Excel.Workbook
    Dim worksheet As Excel.worksheet
    
    Set exl = CreateObject("Excel.Application")
    Set Workbook = exl.Workbooks.Add
    Set worksheet = Workbook.Sheets(1)
    
    For i = 0 To UBound(srcDatas)
        If srcDatas(i).datalength > 0 Then
            For j = 0 To UBound(srcDatas(i).data)
                worksheet.Cells(i + 1, j + 1) = srcDatas(i).data(j)
            Next j
        End If
    Next i
    worksheet.SaveAs ("导出的Excel.xls")
    Workbook.Close (True)
    exl.Quit
    Set exl = Nothing
    
    MsgBox "合并完成"
End Sub

解决方案 »

  1.   

    Dim srcData As StringPrivate Sub Command1_Click()
         
      Dim strTmp As String
      Dim FreeNum As Integer
      FreeNum = FreeFile  Open "D:\test.Asc " For Input As #FreeNum
      Do Until EOF(FreeNum)
      Line Input #FreeNum, strTmp
      strTmp = Replace(Trim(strTmp), ",", vbTab)
      If strTmp > "" Then
      srcData = srcData & IIf(srcData> "", vbCrlf, "") & strTmp
      End If
      Loop
      Close FreeNumEnd SubPrivate Sub Command2_Click()
      Dim exl As Excel.Application
      Dim Workbook As Excel.Workbook
      Dim worksheet As Excel.worksheet
      
      Set exl = CreateObject("Excel.Application")
      Set Workbook = exl.Workbooks.Add
      Set worksheet = Workbook.Sheets(1)
      
      worksheet.Range("A1").Select
      Clipboard.SetText srcData
      worksheet.Paste
      worksheet.SaveAs ("导出的Excel.xls")
      Workbook.Close (True)
      exl.Quit
      Set exl = Nothing
        
      MsgBox "合并完成"
    End Sub
      

  2.   

    学习........写入CSV也是象这样的么?
      

  3.   

    srcDatas(lineNum).data = lineData(0)
      srcDatas(lineNum).datalength = linedata(1)
      

  4.   

    不知道你试了没
    我试了下  不行  
    只能把文件名写入 excel