【发布时间】:2017-12-27 18:32:07
【问题描述】:
我正在尝试从与当前打开的工作簿位于同一文件夹中的另一个电子表格中读取数据,每当我运行此代码时,我都会收到已打开的错误文件。我的语法是否有问题或任何可能阻止这种情况发生的事情?
这里是代码。
Sub ReadFile()
Infile = ThisWorkbook.Path & "\smallDataset.csv"
Open Infile For Input As #1
Input #1, a, b
Close #1
Debug.Print (a & " " & b)
End Sub
谢谢。
【问题讨论】:
-
您当前打开的工作簿的名称是什么? (并且挑剔:.csv 文件不是电子表格;它是逗号分隔值的文本文件(又名 CSV 文件)。)
-
重新启动您的计算机,然后重试。另外,添加一行
Debug.Print ThisWorkbook.Path以确保它返回正确的路径。 (例如,如果您的工作簿尚未保存,它将是 blank。)乍一看,我认为您的语法也有点不对劲,请参阅 this detailed example of reading csv with VBA。跨度> -
如果是错误 55,这可能意味着您已经打开了一个文件句柄为
#1的文件。 (不一定是相同文件,任何文件都可以。)尝试在即时窗口中输入Close(关闭所有打开的文件),然后再次运行您的代码