使用Excel VBA打开.csv文件

时间:2014-08-06 14:42:45

标签: excel vba excel-vba csv

我在VBA中遇到了这段代码的问题,我无法弄清楚它为什么不起作用!我已经尝试了另一个代码,看看它是否是有问题的循环,但问题是专门打开文件而不是迭代它们。

Sub fileloop(Path)
Dim strFile As String, strPath As String
Dim MyBook As Workbook

strPath = Path '& "\*.csv"
strFile = Dir(strPath & "\*.csv")

MsgBox (strFile)

While strFile <> ""

'placed another messagebox here to see if the strFile was the same inside the loop.
MsgBox (strFile)

'this line has the error.   
    Workbooks.OpenText FileName:=strFile, _
DataType:=xlDelimited, Comma:=True, Local:=True

  set MyBook = ActiveWorkbook

    Call SortColumnB(MyBook)

    strFile = Dir

 Wend

End Sub

我得到的错误信息是这样的:

  找不到'AC000W0009.csv'。检查文件名的拼写,并验证文件位置是否正确。

     

如果您尝试从最近使用的文件列表中打开文件,请确保该文件尚未重命名,移动或删除。

除了上面列出的那些之外,我尝试了很多变化,我无法理解为什么VBA不会识别该文件存在。

修改

关于迈克所说的关于用完整路径打开文件的说法我对代码所做的更改让它打开.csv文件:

 strPath = Path & "\"
strFile = Dir(strPath & "*.csv")



While strFile <> ""
MsgBox (strFile)                 'added path to file name.
    Workbooks.OpenText FileName:=strPath & strFile, _
DataType:=xlDelimited, Comma:=True, Local:=True

1 个答案:

答案 0 :(得分:3)

我相信Dir只返回文件名。

如果要打开它,则需要添加Dir返回的文件名的路径。

有一些很好的例子here