2013-10-22 5 views
4

와일드 카드를 사용하여 매크로 통합 문서와 같은 폴더에 저장된 통합 문서를 열려고합니다. 폴더에는 302113-401yr-r01.xlsm이라는 파일이 있습니다. 여기 내 코드는 다음과 같습니다.와일드 카드를 사용하여 Excel 통합 문서 열기

Workbooks.Open filename:=ActiveWorkbook.Path & "\302113*.xlsm" 

그러나이 파일은 없다고 알려줍니다. 어떤 충고?

+1

경로 또는 파일 이름에 별표를 사용할 수 없습니다. 각 파일을 개별적으로 열어야합니다. 여기에서 'Dir 함수'를 검색하면 확실한 예제가 많이 있습니다. [여기] (http://msdn.microsoft.com/en-us/library/office/gg278779%28v=office.14%29.aspx)도 일부 정보를 찾을 수 있습니다. –

답변

10

와일드 카드를 사용하여 파일을 열 수 없습니다 - 가능하다면 혼란을 상상해보십시오!

이 경우 반환하는 파일을 반복하려면 Dir(ActiveWorkbook.Path & "\302113*.xlsm")을 사용해야합니다. 하나가 될 것입니다 경우 한 번만이 기능을 사용

Dim sFound As String 

sFound = Dir(ActiveWorkbook.Path & "\302113*.xlsm") 'the first one found 
If sFound <> "" Then 
    Workbooks.Open filename:= ActiveWorkbook.Path & "\" & sFound 
End If 

Dir Function이 내 경험에서 그물

+2

+1 '와일드 카드를 사용하여 파일을 열 수 없습니다 - 가능하다면 혼돈을 상상해보십시오!'사실 True :) –

+0

와일드 카드를 사용하여 파일을 여는 방법이 문제가되는 것을 안다. 답변 주셔서 감사합니다! – DanW

+1

내가 한 말을 제외하고는 DIR 함수가 경로와 파일 이름이 아닌 파일 이름 만 반환하는 것으로 보입니다. 따라서 위의 코드에서 Workbooks.Open을 사용하면 ActiveWorkbook.Path & "\"& sFound를 넣어야합니다. – DanW

3

에 기술이 작동하면 문자열의 마지막 상징으로 와일드 카드/별표가있는 경우 및 하나의 파일 만있는 경우. 내가 사용하고 예를 들어

Workbooks.Open filename:=ActiveWorkbook.Path & "\302113*" 

을 :

Workbooks.Open Filename:="X:\business\2014\Easy*" 

을하고 그것을 작동하고보십시오.

2

와일드 카드를 사용하여 파일을 열 수는 있지만 어떤 이유로 UNC 경로 만 사용할 수 있습니다. 예를 들어

: 나는 파일을 열고 파일 이름에 와일드 카드를 사용하는 나를 위해 잘 엑셀 있지만 다음 작품으로 아직 경험이 아니에요

Set xlFile = xlObj.WorkBooks.Open("\\yourServerHere\dataAutomation\*.xlsx") 
+0

이 방법은 나를 위해 작동하지 않습니다, 내 upvote 취소 (잠겨있어). –

2

. 이 예에서는 모든 파일이 동일한 디렉토리/폴더에 있어야합니다. 네, 꽤 단순합니다.

Sub using_wildcards_to_open_files_in_excel_vba() 

    Dim mypath As String 
    Dim sFilename As String 

    'Suppose you have three files in a folder 
    ' Named blank.xlsx,, ex1_939_account.xlsx, and ex1_opt 5.xlsx 

    'Manually open the blank.xlsx file 

    'The following code lines will open the second two files before closing the previously opened file. 

    ActiveWorkbook.Activate 
    mypath = ActiveWorkbook.Path 
    'opening xlsx file with name containing "939" and closing current file 
    mypath = mypath & "\*939*.xlsx" 
    'MsgBox mypath 'Checking 
    sFilename = Dir(mypath) 
    'MsgBox sFilename 'Checking 

    ActiveWorkbook.Close savechanges:=False 
    Workbooks.Open Filename:=sFilename 

    ActiveWorkbook.Activate 
    mypath = ActiveWorkbook.Path 
    'opening xlsx file with name ending in "opt 5" and closing current file 
    mypath = mypath & "\*opt 5.xlsx" 
    'MsgBox mypath 'Checking 
    sFilename = Dir(mypath) 
    'MsgBox sFilename 'Checking 

    ActiveWorkbook.Close savechanges:=False 
    Workbooks.Open Filename:=sFilename 

End Sub 
관련 문제