Excel到CSV连接

时间:2019-03-21 09:21:42

标签: excel csv

我在excel和csv之间建立了连接,该连接使用csv中的数据在excel工作表中创建了一个表。根据这些数据,我创建了数据透视图。我将连接设置为在打开时重新启动,并且一切正常,但是当我关闭并重新打开excel文件时,它说有错误,并且恢复了excel文件中没有连接。

1 个答案:

答案 0 :(得分:0)

假设您有一个c:\example.csv文件,内容如下:

0,5.324,text
4,true,other text,4.6E2
"45",,

如您所见,我在上面放了几种值(integersdoublesstringsbooleans,...)。 现在,假设您要将文件内容放在Excel表中(例如,从单元格C2开始)。

以下代码可以解决问题:

Sub ReadCsv()
    '-----Variables:
        Dim FileName As String: FileName = "c:\example.csv"      '<-- file path
        Dim FSO As New FileSystemObject                          '<-- file system object
        Dim Reader As TextStream                                 '<-- stream
    '-----
        Dim LineTemp As String                                   '<-- temporary string
        Dim LineData() As String                                 '<-- line array
    '-----
        Dim SH As Worksheet: Set SH = ThisWorkbook.Sheets("X1")  '<-- your sheet
        Dim RW As Long, CL As Long: RW = 2: CL = 3               '<-- row and column of first cell to write
    '-----Procedure:
        Set Reader = FSO.OpenTextFile(FileName)                  '<-- open file
        Do While Not Reader.AtEndOfStream                        '<-- read to the end
            LineTemp = Reader.ReadLine                           '<-- record the line
            LineData = Split(LineTemp, ",")                      '<-- split the data
            For x = LBound(LineData) To UBound(LineData)         '<-- get the data
                SH.Cells(RW, CL).FormulaR1C1 = LineData(x)       '<-- write the data
                CL = CL + 1
            Next x
            CL = 3: RW = RW + 1
        Loop
        Reader.Close                                             '<-- close file
End Sub

结果如下:

contents from .csv

不要忘记将库Microsoft Scripting Runtime添加到您的引用中。您可以在Tools> References中做到这一点。

这是我用来防止Microsoft Excel.csv文件之间发生任何类型冲突的方法。它总是有效的...