2013-07-02 125 views
8

使用2010 Excel VBA - 我只是試圖通過一個子打開一個文件夾。我在這裏做錯了什麼?Excel VBA打開文件夾

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

你想要的文件夾做一旦你打開了它做什麼? – Bathsheba

+0

Shell只有兩個參數。如上所述,它不是真正清楚你在做什麼 – JosieP

+0

我希望用戶能夠點擊一個按鈕,並在屏幕上打開文件夾 - 沒有別的。 – Sanya

回答

19

如果你想打開一個Windows文件瀏覽器,你應該叫Explorer.exe的

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

等效syxntax

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

它說在這條線上的語法錯誤 – Sanya

+0

@ d-stroyer,你很近。該行看起來像'shell「explorer.exe/e,z:\ MyPath \ To \ Folder」 – SeanC

+0

我想你還需要把路徑放在引號中,如果可能有空格。 –

0

我使用它來打開工作簿,然後將該工作簿的數據複製到模板。

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) 

「下面的是將文件複製到新的工作表在工作簿和表粘貼這些值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