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