Crear una nueva carpeta en OneDrive.
He estado utilizando el código anterior durante años. Crea una nueva carpeta y la nombra con la fecha del próximo día laborable y agrega otra carpeta dentro de esta llamada “VO”.
El código tiene dos líneas “fPath”. La línea en pausa es la original. Con esta línea puedo mover mis archivos y el código seguirá creando una nueva carpeta, basada en la ubicación de ThisWorkbook.
Sin embargo, con OneDrive, la línea original “fPath” termina en “Error de tiempo de ejecución 52: Nombre de archivo o número incorrecto”, marcando la línea .CreateFolder (EndDir1).
¿Por qué este código no funciona en OneDrive? Cuando cambio la línea “fPath” a la dirección completa, funciona perfectamente.
Sub NewFolderNextWorkDay()
Dim FSO As Object
Dim fsoObj As Object
Dim NeArbDg As Double
NeArbDg = Application.WorkDay(Date, 1)
Dim Dato As String
Dim fPath As String
Dim EndDir1, EndDir2 As String
Dato = Format(NeArbDg, “yyyy-mm-dd”)
‘fPath = ThisWorkbook.Path & “..” ‘(código antiguo, funcionaba bien hasta que llegó OneDrive)
fPath = “C:\Users\MyId\OneDrive – MyJob\Mine dokumenter\PROD\TEST\2022\” ‘(nuevo código, funciona bien con OneDrive)
EndDir1 = (fPath & Dato & “\”)
EndDir2 = (fPath & Dato & “\VO”)
Set fsoObj = CreateObject(“Scripting.FileSystemObject”)
With fsoObj
If Not .FolderExists(EndDir1) Then
.CreateFolder (EndDir1)
End If
If Not .FolderExists(EndDir2) Then
.CreateFolder (EndDir2)
End If
End With
End Sub
davy.ai
El código no funciona en OneDrive porque la línea original “fPath” utiliza la ruta relativa de la ubicación del libro de trabajo, que no es una ruta válida en OneDrive. OneDrive requiere la dirección completa para la ruta. Cuando se cambia la línea “fPath” a la dirección completa, el código funciona bien en OneDrive.