2012-06-22 22 views
9

quiero abrir todos los archivos en una carpeta especificada y tienen el siguiente código demacro - abrir todos los archivos en una carpeta

Sub OpenFiles() 
Dim MyFolder As String 
Dim MyFile As String 
MyFolder = "\\ILAFILESERVER\Public\Documents\Renewable Energy\FiTs\1 Planning 
      Department\Marks Tracker\Quality Control Reports" 
MyFile = Dir(MyFolder & "\*.xlsx") 
Do While MyFile <> "" 
Workbooks.Open Filename:=MyFolder & "\" & MyFile 
Loop 
End Sub 

El problema que tengo es que sólo sigue tratando de abrir el primer archivo de la carpeta repetidamente y no se moverá. ¿Alguien puede ayudar, soy un poco novato en VBA y realmente podría hacer algo de ayuda. Estoy intentando abrir alrededor de 30 informes que están todos en formato .xlsx. Muchas gracias de antemano.

+0

¿Desea abrir todos los archivos en una carpeta al mismo tiempo? –

Respuesta

20

hay que añadir esta línea justo antes de loop

MyFile = Dir 
Loop 
+0

Hola Siddharth, eso funciona a la perfección. Muchas gracias –

+4

Hola, Ross y bienvenidos a StackOverflow! Aquí, es costumbre agradecer a las personas haciendo clic en el botón 'aceptar como respuesta' al lado de su respuesta. Tiene la forma de una gran marca de verificación. De esta forma, su ayudante obtiene puntos como recompensa por ayudarlo y obtiene crédito por contribuir con una útil página de preguntas y respuestas. –

1

Prueba el código de abajo:

Sub opendfiles() 

Dim myfile As Variant 
Dim counter As Integer 
Dim path As String 

myfolder = "D:\temp\" 
ChDir myfolder 
myfile = Application.GetOpenFilename(, , , , True) 
counter = 1 
If IsNumeric(myfile) = True Then 
    MsgBox "No files selected" 
End If 
While counter <= UBound(myfile) 
    path = myfile(counter) 
    Workbooks.Open path 
    counter = counter + 1 
Wend 

End Sub 
0

Puede utilizar Len(StrFile) > 0 en la declaración de verificación de bucle!

Sub openMyfile() 

    Dim Source As String 
    Dim StrFile As String 

    'do not forget last backslash in source directory. 
    Source = "E:\Planning\03\" 
    StrFile = Dir(Source) 

    Do While Len(StrFile) > 0       
     Workbooks.Open Filename:=Source & StrFile 
     StrFile = Dir() 
    Loop 
End Sub 
Cuestiones relacionadas