es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para aplicar el formato de fecha del Reino Unido a las fechas devueltas en los metadatos, puede utilizar la función CDate en VBA. Dentro del bucle For que recorre cada propiedad, puede agregar una declaración condicional para verificar si el nombre de la propiedad es “Fecha modificada” o “Fecha creada”. Si es así, puede utilizar la función CDate para convertir el formato mixto de EE. UU. y el Reino Unido al formato del Reino Unido, antes de ingresarla a la hoja de cálculo. Aquí está el código actualizado con los cambios:

    Dim sFile As Object, obja
    Dim dateModified as String, dateCreated as String
    
    'Crear objeto Shell y Namespace
    Set oShell = CreateObject("Shell.Application")
    Set oDir = oShell.Namespace("RUTA DEL ARCHIVO")
    ActiveSheet.Cells.ClearContents
    
    'Recorrer cada archivo/carpeta dentro del directorio raíz
    iRow = 1
    
    For Each sFile In oDir.Items
        iRow = iRow + 1
    
        'Recorrer cada propiedad
        For i = 0 To 5
    
            'Obtener el nombre y el valor de la propiedad del archivo
            obja = oDir.GetDetailsOf(sFile, i)
            If obja <> "" Then
                iRow = iRow + 1
                'Ingresar la propiedad del archivo en la hoja de cálculo
                ActiveSheet.Range("A" & iRow) = oDir.GetDetailsOf(oDir, i)
    
                If oDir.GetDetailsOf(oDir, i) = "Fecha modificada" or oDir.GetDetailsOf(oDir, i) = "Fecha creada" Then
                    'Convertir el formato mixto de EE. UU. y el Reino Unido al formato del Reino Unido
                    If InStr(obja, "/") <> 0 Then
                        dateParts = Split(obja, "/")
                        obja = dateParts(1) & "/" & dateParts(0) & "/" & dateParts(2)
                    End If
                    obja = CDate(obja)
                End If
    
                ActiveSheet.Range("B" & iRow) = obja
            End If
        Next
    Next
    
    MsgBox "Proceso completado";
    
    End Sub
    

    Este código actualizado verifica si el nombre de la propiedad es “Fecha modificada” o “Fecha creada”, y si es así, convierte el formato mixto al formato del Reino Unido utilizando la función Split para separar las partes de la fecha y luego reordenándolas antes de pasarlas a la función CDate.

Comments are closed.