2013-07-02 32 views
8

Utilizzo di VBA di Excel 2010 - Sto solo provando ad aprire una cartella attraverso un sottotitolo. Cosa sto facendo di sbagliato qui?Excel VBA Apre una cartella

VBA

Sub openFolder() 
    Dim preFolder As String, theFolder As String, fullPath as String 

    theFolder = Left(Range("T12").Value, 8) 
    preFolder = Left(Range("T12").Value, 5) & "xxx" 
    fullPath = "P:\Engineering\031 Electronic Job Folders\" & preFolder & "\" & theFolder 

    Shell(theFolder, "P:\Engineering\031 Electronic Job Folders\" & preFolder, vbNormalFocus) 

End Sub 
+1

che cosa si vuole fare con la cartella dopo aver aperto lo ? – Bathsheba

+0

Shell accetta solo due argomenti. come già detto non è chiaro cosa stai facendo – JosieP

+0

Voglio che l'utente sia in grado di fare clic su un pulsante e la cartella si apra sullo schermo - nient'altro. – Sanya

risposta

19

Se si desidera aprire un file di Windows Explorer, si dovrebbe chiamare explorer.exe

Call Shell("explorer.exe" & " " & "P:\Engineering", vbNormalFocus) 

syxntax Equivalente

Shell "explorer.exe" & " " & "P:\Engineering", vbNormalFocus 
+0

Si dice che c'è un errore di sintassi su questa riga – Sanya

+0

@ d-stroyer, sei vicino. La riga sarebbe simile a "shell" explorer.exe/e, z: \ MyPath \ To \ Folder "' – SeanC

+0

Penso che sia necessario inserire il percorso tra virgolette se ci potrebbe essere uno spazio al suo interno. –

0

Io lo uso per aprire un cartella di lavoro e quindi copiare i dati di quella cartella di lavoro sul modello.

Private Sub CommandButton24_Click() 
Set Template = ActiveWorkbook 
With Application.FileDialog(msoFileDialogOpen) 
    .InitialFileName = "I:\Group - Finance" ' Yu can select any folder you want 
    .Filters.Clear 
    .Title = "Your Title" 
    If Not .Show Then 
     MsgBox "No file selected.": Exit Sub 
    End If 
    Workbooks.OpenText .SelectedItems(1) 

'Il sotto è di copiare il file in un nuovo foglio nella cartella di lavoro e incollare questi valori nel foglio 1

Set myfile = ActiveWorkbook 
    ActiveWorkbook.Sheets(1).Copy after:=ThisWorkbook.Sheets(1) 
    myfile.Close 
    Template.Activate 
    ActiveSheet.Cells.Select 
    Selection.Copy 
    Sheets("Sheet1").Select 
    Cells.Select 
    ActiveSheet.Paste 

End With