Sprawdzanie czy inny skoroszyt jest otwarty oraz jego otwieranie/zamykanie

Nieraz musimy odwołać się do danych z innego skoroszytu. Dzięki kodowi poniżej możemy sprawdzić, czy interesujący nas plik jest otwarty, bądź zamknięty.

Akurat w moim przypadku plik nie mógł być otwarty, a to z tego powodu że musiałem wykonać kopię tego pliku pod inną nazwą. Gdy plik był otwarty podczas kopiowania pliku pojawiał się błąd. Niestety ubolewam nad faktem, że nie zapisałem źródła kodu.

Sub CheckOpen()

Dim Ret
Dim FolderPath As String

FolderPath = "Scieżka do folderu gdzie znajduje sie plik"

Ret = IsWorkBookOpen(FolderPath & "\NazwaPliku.xlsx")
If Ret = True Then
    ' Skoroszyt jest otwarty, zamknięcia bez zapisania zmian
    Windows("NazwaPliku.xlsx").Close SaveChanges:=False
    Debug.Print "Plik został zamknięty." ' do usuniecia
Else
    ' Nic sie nie dzieje - NazwaPliku.xlsx nie jest otwarty
    Debug.Print "Plik jest zamknięty." ' do usuniecia
End If

' Kopiowanie NazwaPliku.xlsx i tworzenie NazwaPliku2.xlsx
FileCopy FolderPath & "\NazwaPliku.xlsx", FolderPath & "\NazwaPliku2.xlsx"
    
' Otwieranie nowego pliku NazwaPliku2
Workbooks.Open FileName:=FolderPath & "\NazwaPliku2.xlsx"

End Sub

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.