2012-06-22 6 views
9

voglio aprire tutti i file in una cartella specificata e hanno il seguente codicemacro - aprire tutti i file in una cartella

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 

Il problema che ho è che si continua a cercare di aprire il primo file nella cartella ripetutamente e non si muoverà. Qualcuno può aiutare, io sono un po 'novizio in VBA e potrei davvero fare con qualche aiuto. Sto cercando di aprire circa 30 rapporti tutti in formato .xlsx. Molte grazie in anticipo.

+0

Si desidera aprire tutti i file in una cartella allo stesso tempo? –

risposta

20

si deve aggiungere questa linea poco prima loop

MyFile = Dir 
Loop 
+0

Ciao Siddharth, che funziona perfettamente. Grazie mille –

+4

Ciao, Ross e benvenuto su StackOverflow! Qui, è consuetudine ringraziare le persone facendo clic sul pulsante "accetta come risposta" accanto alla loro risposta. Ha la forma di un grande segno di spunta. In questo modo il tuo aiutante ottiene punti come ricompensa per aiutarti e ottieni credito per aver contribuito a una pagina di domande e risposte. –

1

provare il codice qui sotto:

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

È possibile utilizzare Len(StrFile) > 0 nella dichiarazione di controllo ciclo!

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