Mam arkusz kalkulacyjny, który po kliknięciu przycisku powieli się, kopiując/wklejając wszystko do nowego skoroszytu i zapisując plik o nazwie zależnej od niektórych wartości zmiennych (pobranych z komórek arkusz kalkulacyjny). Mój obecny cel to zmusić go do zapisania arkusza w różnych folderach w zależności od nazwy klienta (wartość komórki przechowywana w zmiennej), podczas gdy działa to przy pierwszym uruchomieniu, otrzymuję po nim błąd.Excel VBA Sprawdź, czy istnieje błąd katalogu
Kod sprawdza, czy katalog istnieje i tworzy go, jeśli nie. To działa, ale po jego utworzeniu, uruchomienie go po raz drugi wyrzuca błąd:
Runtime Error 75 - path/file access error.
Mój kod:
Sub Pastefile()
Dim client As String
Dim site As String
Dim screeningdate As Date
screeningdate = Range("b7").Value
Dim screeningdate_text As String
screeningdate_text = Format$(screeningdate, "yyyy\-mm\-dd")
client = Range("B3").Value
site = Range("B23").Value
Dim SrceFile
Dim DestFile
If Dir("C:\2013 Recieved Schedules" & "\" & client) = Empty Then
MkDir "C:\2013 Recieved Schedules" & "\" & client
End If
SrceFile = "C:\2013 Recieved Schedules\schedule template.xlsx"
DestFile = "C:\2013 Recieved Schedules\" & client & "\" & client & " " & site & " " & screeningdate_text & ".xlsx"
FileCopy SrceFile, DestFile
Range("A1:I37").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\2013 Recieved Schedules\" & client & "\" & client & " " & site & " " & screeningdate_text & ".xlsx", UpdateLinks:= _
0
Range("A1:I37").PasteSpecial Paste:=xlPasteValues
Range("C6").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Musisz wybaczyć mój brak wiedzy w tej dziedzinie, Jestem w trakcie nauki. Mam bardzo silne przeczucie, że ma coś wspólnego z logiką kontroli katalogów, ponieważ po zgłoszeniu błędu podświetlona jest linia MkDir
.
Spróbuj sprawdzić łańcuch o długości zerowej (tj. ""), zamiast opcji Pusty. – chuff
Dir zwraca ciąg o zerowej długości, jeśli nic nie zostanie znalezione. więc nie używaj Empty use "" zamiast: –
Cześć chłopaki, Dzięki za poradę, zmieniłem ją na "", nigdy nie wiedziałem, że sprawdziłem dla ciągów o zerowej długości. Mimo że wykorzystam to dla przyszłych dobrych praktyk, nie rozwiązało to problemu. Jakieś dodatkowe sugestie? – user1571463