簡體   English   中英

檢查csv文件是否從vba打開

[英]to check if csv file is open from vba

我想導出表以訪問 csv 文件。 如果我想導出表的 csv 文件關閉,它工作正常。 但是如果文件是打開的,我不會出錯,也不會導出表。 有沒有辦法檢查 csv 文件是否已經打開,如果可以關閉它?

在這里找到了解決方案。 用於檢查文件或文檔是否打開的 VBA 函數https://support.microsoft.com/en-us/kb/209189

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

如此 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語句中指定文件名,您將關閉您打開的所有文件。

如果文件被另一個應用程序打開,我不知道是否有辦法關閉它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM