有没有办法在不打开CSV文件的情况下将数据从csv文件检索到Excel工作表?我正在使用Windows PC。 Excel工作表和CSV文件位于一个文件夹中。我还有一个正在运行的程序,它不断更新CSV文件中的数据。如果我直接打开CSV文件,程序将停止运行。因此,我需要一种替代解决方案来从CSV文件中读取数据而无需打开它。任何帮助将不胜感激!
答案 0 :(得分:0)
如果我理解正确,您希望从CAV
文件中读取而不将其锁定,以便您的其他进程可以继续写入。
这可以通过FileSystemObject
Sub Demo()
Dim fso As FileSystemObject
Dim txt As TextStream
Dim s As String
On Error GoTo EH
Set fso = New FileSystemObject
Set txt = fso.OpenTextFile("C:\Your\Path\YourFile.csv", ForReading)
打开文件ForReading
不会锁定它,您的其他进程可以继续写入它。您现在可以使用
Do While Not txt.AtEndOfStream
s = txt.ReadLine
Debug.Print s
Loop
这将读到文件的当前结尾。如果在代码仍在执行其他操作时向文件添加了更多数据,则可以继续使用txt.ReadLine
来获取更多数据。
要从头开始重读,请执行
Set txt = fso.OpenTextFile("C:\Your\Path\YourFile.csv", ForReading)
试。
用
清理EH:
On Error Resume Next
txt.Close
Set txt = Nothing
Set fso = Nothing
End Sub