2016-02-13 2 views
1
Sub Main() 
Dim FSO As New FileSystemObject 
Dim Fl As File 
Dim Folder As Folder 
Dim F_Name, F_Path As String 
F_Path = ThisWorkbook.Path & "\" 
Set Folder = FSO.GetFolder(F_Path) 
F_Name = "CI*.*" 
For Each Fl In Folder.Files 
    If Fl.Name = F_Name Then 
     GoTo Report 
    End If 
Next 

Report: 
Workbooks.Open Filename:=F_Path & F_Name 

Я хотел бы открыть файл excel с таким же адресом, но я знаю только часть имени файла, поэтому, пожалуйста, помогите мне как открыть имя файла. Благодаря!VBA FIle Search

+0

вы должны использовать функцию Dir, чтобы открыть файл с помощью подстановочных знаков. http://www.techonthenet.com/excel/formulas/dir.php –

+1

Попробуйте изменить 'If Fl.Name = F_Name Then' to' If Fl.Name Like F_Name Then' – Fadi

+0

Этот ответ поможет вам пройти через него http://stackoverflow.com/questions/19527415/using-a-wildcard-to-open-an-excel-workbook –

ответ

0
Sub Main() 
Dim FSO As New FileSystemObject 
Dim Fl As File 
Dim Folder As Folder 
Dim F_Name, F_Path As String 
F_Path = ThisWorkbook.Path & "\" 
Set Folder = FSO.GetFolder(F_Path) 
F_Name = "CI*.*" 
For Each Fl In Folder.Files 
If Fl.Name Like F_Name Then 
    GoTo Report 
End If 
Next 

Report: 
Workbooks.Open Filename:=F_Path & Fl.Name 
1

Try:

Sub Main() 
Dim FSO As New FileSystemObject 
Dim Fl As File 
Dim Folder As Folder 
Dim F_Name, F_Path As String 
F_Path = ThisWorkbook.Path & "\" 
Set Folder = FSO.GetFolder(F_Path) 
F_Name = "CI*.*" 
For Each Fl In Folder.Files 
    If Fl.Name Like F_Name Then 
     GoTo Report 
    End If 
Next 

msgbox "File not found" 
exit sub 

Report: 
Workbooks.Open Filename:=F_Path & Fl.Name 
End Sub 

Edit:

Для поиска с помощью Dir:

Sub TestDir() 

    Dim F_Path As String, F_Name As String, f As String 

    F_Path = ThisWorkbook.Path & "\" 
    F_Name = "CI*.*" 

    f = Dir(F_Path & F_Name) 

    If f = "" Then 
    MsgBox "File not found" 
    Else 
    Workbooks.Open FileName:=F_Path & f 
    End If 

End Sub 
+0

Могу ли я открыть файл без поиска? –

+0

@VBA_Coder, если вы не знаете полного имени файла, я не думаю, что вы можете его открыть без поиска, но мы можем использовать 'Dir' для поиска без цикла (быстрее), см. Edit. – Fadi