检查csv文件是否从vba打开

时间:2015-07-14 08:15:47

标签: file csv access-vba export

我想在访问csv文件时导出表。如果我要导出表的csv文件已关闭,它可以正常工作。但是如果文件是打开的,我没有错误,也没有导出表。 有没有办法检查csv文件是否已经打开,如果可能关闭它?

3 个答案:

答案 0 :(得分:2)

在这里找到解决方案。 用于检查文件或文档是否打开的VBA函数https://support.microsoft.com/en-us/kb/209189

答案 1 :(得分:1)

Sub MacroName()
   Dim Path As String
   Path = "C:\test.doc"
   If Not FileLocked(Path) Then
      Documents.Open strFileName
   End If
End Sub

Function FileLocked(Path As String) As Boolean
   On Error Resume Next
      Open strFileName For Binary Access Read Write Lock Read Write As #1
   Close #1
      If Err.Number <> 0 Then
         MsgBox "Error #" & Str(Err.Number) & " - " & Err.Description
      FileLocked = True
      Err.Clear
   End If
End Function

答案 2 :(得分:0)

this microsoft support page中所述,您可以检查文件是否为只读文件:

Sub Example1()

    ' Test to see if the Read-only attribute was assigned to the file.

    If GetAttr("c:\example.csv") And vbReadOnly Then
        MsgBox "File is Read-only"
    Else
        MsgBox "File is not read-only"
    End If

End Sub

如果您打开该文件,则可以随时关闭所打开的任何文件。

intFile = FreeFile()
Open "c:\example.csv" For Output As #intFile
Write #intFile
Close #intFile

如果未在Close语句中指定文件名,则将关闭所有打开的文件。

如果该文件被其他应用程序打开,我不知道是否有办法关闭它。