我在excel和csv之间建立了连接,该连接使用csv中的数据在excel工作表中创建了一个表。根据这些数据,我创建了数据透视图。我将连接设置为在打开时重新启动,并且一切正常,但是当我关闭并重新打开excel文件时,它说有错误,并且恢复了excel文件中没有连接。
答案 0 :(得分:0)
假设您有一个c:\example.csv
文件,内容如下:
0,5.324,text
4,true,other text,4.6E2
"45",,
如您所见,我在上面放了几种值(integers
,doubles
,strings
,booleans
,...)。
现在,假设您要将文件内容放在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
结果如下:
不要忘记将库Microsoft Scripting Runtime
添加到您的引用中。您可以在Tools
> References
中做到这一点。
这是我用来防止Microsoft Excel
和.csv
文件之间发生任何类型冲突的方法。它总是有效的...