2014-11-26 2 views
0

일별/주간 기준으로 보고서를 다운로드하지만 시스템을 다운로드 할 때 기본 파일 이름은 같지만 날짜가있는 파일 이름이 자동으로 생성됩니다. 즉, ANAPOS - 20141001입니다. 다른 작업을하기 위해 간단히 열기 명령 (Workbooks.OpenText Filename : = "C : \ Users \ 903270 \ Documents \ Excel \ ANAPOS.txt")을 사용하고 있습니다. 내가 그것을 실행할 수 전에 ANAPOS.txt에 파일. 내 매크로가 ANAPOS를 검색 할 수있게 해주는 코드가 있습니까? 도움을 주시면 감사하겠습니다.VBA를 사용하는 FileDialog 열기

+0

언급 한 폴더에서 파일 목록을 가져 와서 ("ANAPOS *"로 필터링) 이름에 원하는 날짜가있는 ANAPOS 파일을 엽니 다. 다음은 간단한 파일 목록 솔루션입니다 : http://spreadsheetpage.com/index.php/tip/getting_a_list_of_file_names_using_vba/ –

답변

0

같은 주제로 튀어 나와 OP

에 의해 명확하게 파악하기

Sub getANAPOS() 
Dim Filter As String, filePath As String 

filePath = "C:\Data\VBA\SO\" 
Filter = "ANAPOS files (*.txt), filepath & ANAPOS*.txt" 

ANAPOSSelectedFile = Application.GetOpenFilename(Filter) 

End Sub 

EDIT를 검색 할 위치로 설정 filePath이 당신에게 작업을 몇 가지 범위를 제공해야합니다. 그것은 이미 존재하지 않는 한 기본적으로 '자동으로'선택된 파일의 이름을 바꿉니다. GetOpenFileName 결과를 구문 분석하기위한 깔끔한 아이디어 인 @ Gary의 학생에게 감사 인사. here.

Sub renameANAPOS() 
Dim Filter As String, filePath As String, newName As String 

'filter txt file names containing 'ANAPOS' 
Filter = "ANAPOS files (*.txt), filepath & ANAPOS*.txt" 

'the 'rename' name 
newfName = "ANAPOS" 

'navigate to original ANAPOS file and location details 
ANAPOSSelectedFile = Application.GetOpenFilename(Filter) 

'parse selected file details 
fullArr = Split(ANAPOSSelectedFile, "\") 
detArr = Split(fullArr(UBound(fullArr)), ".") 
fullArr(UBound(fullArr)) = "" 
fPath = Join(fullArr, "\") 
fName = detArr(0) 
fExt = detArr(1) 

'rename file in not already exixts 
    If Len(Dir(fPath & newfName & "." & fExt)) > 0 Then 
     MsgBox newfName & "." & fExt & " already exists in this folder." 
     Exit Sub 
    Else 
     Name ANAPOSSelectedFile As fPath & newfName & "." & fExt 
    End If 

End Sub 
+0

감사합니다 barryleajo,하지만 내가 뭘했는지, 내 설명은 처음에는 그다지 좋지 않을 수 있습니다 (미안 해요, new at this), ANAPOS-xxxx.txt (여기서 xxxx는 변수이고 파일을 다운로드 할 때마다 변경됨)의 원본 파일 이름을 ANAPOS.txt로 바꿉니다. – ynoT

+0

@ynoT 원래의 답변으로 편집 참조하십시오. – barryleajo