Ho un foglio di calcolo che dopo aver fatto clic su un pulsante si duplicherà copiando/incollando tutto in una nuova cartella di lavoro e salvando il file con un nome che dipende da alcuni valori di variabile (prelevati dalle celle in il foglio di calcolo). Il mio obiettivo attuale è ottenere che salvi il foglio in cartelle diverse a seconda del nome del nome del client (valore della cella contenuto nella variabile), mentre questo funziona alla prima esecuzione, dopo ho ricevuto un errore.Excel VBA Verifica se la directory esiste errore
Il codice controlla se la directory esiste e la crea in caso contrario. Questo funziona, ma dopo la creazione, in esecuzione una seconda volta genera l'errore:
Runtime Error 75 - path/file access error.
Il mio codice:
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
Dovrete scusare la mia mancanza di conoscenze in questo settore, Sto ancora imparando. Ho la sensazione molto forte che abbia qualcosa a che fare con la logica di controllo della directory, come quando viene lanciato l'errore la linea MkDir
è evidenziata.
Prova a cercare la stringa di lunghezza zero (cioè ""), piuttosto che Empty. – chuff
Dir restituisce una stringa di lunghezza zero se non viene trovato nulla. quindi non usare Empty use "" invece –
Ciao Ragazzi, grazie per il consiglio, l'ho cambiato in "", non ho mai saputo che fosse stato controllato per stringhe di lunghezza zero. Mentre userò questo per le migliori pratiche future, non ha risolto il problema. Altri suggerimenti? – user1571463