2013-05-02 2 views
1

나는 매크로를 설정하여 디렉토리의 모든 파일을 열고 각각의 특정 탭을 결합 된 파일로 복사합니다 (하나의 통합 문서에서 병합). 나는 두 가지 문제가있다. 첫째로 파일은 암호로 보호되어 있습니다. 그래서이 줄을 사용할 때 파일을 엽니 다.Excel 암호 및 조각 탭 이름

그러나 암호로 보호 된 경우 실패합니다. 그래서 다음을 끝에 추가했지만 여전히 실패합니다.

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName),Password = "openfile" 

두 번째 문제 - 탭 (시트)을 복사 할 때 파일 이름과 함께 이름을 지정하고 싶습니다. 그러나 파일 이름이 너무 깁니다. - 그래서 첫 번째 공간까지 이름을 가져 가고 싶습니다 (예 : "Test file May 13"= 시트 이름 "Test"). 이 코드를 작동 시키려면 어떻게해야합니까?

도움을 주시면 감사하겠습니다. 아래

전체 코드 :

* gRnCT_File_Loc = 디렉토리 위치. * gsInputFileName = 파일 이름.

Code to date: 

Sub Pulldata() 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

Set gRwksconfigeration = Sheets(gcsConfigSheetName) 
gRnCT_File_Loc = gRwksconfigeration.Range(CT_File_Loc) 
gRnCT_Tab_Search = gRwksconfigeration.Range(CT_Tab_Search) 
gsInputFileName = Dir(gRnCT_File_Loc) 
Set gwkscurrent = ActiveWorkbook 

For Each ws In ThisWorkbook.Worksheets 
     If ws.Name <> gcsConfigSheetName Then ws.Delete 
Next ws 

Do 
    On Error GoTo err: 
     Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName) 
    On Error GoTo 0 

    On Error GoTo err1: 
     With Sheets(gRnCT_Tab_Search) 
    On Error GoTo 0 

     End With 

gsInputFileName = Dir 
Loop Until gsInputFileName = vbNullString 

Application.ScreenUpdating = True 
Application.DisplayAlerts = True 

Exit Sub 

err: 
    MsgBox ("No files or files in incorrect format in " & gRnCT_File_Loc) 
    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 
    Exit Sub 
err1: 
    MsgBox ("Sheet " & gRnCT_Tab_Search & " doesn't exist in file " & gsInputFileName) 
    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 
    Resume Next 

End Sub 

답변

2

당신은 암호 후 : 누락

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName),Password = "openfile" 

는해야한다 : 예를 들어, 당신의 구분 기호로 공간을 사용하여 두 번째 문제에 대한

Set gwkbInputdata = Workbooks.Open(gRnCT_File_Loc & gsInputFileName,Password:="openfile") 
당신은 사용할 수

splitstr 예컨대 파일의 원래 이름

Split(str, " ")(0) 

"테스트 제기 할 수 있습니다 13"

+1

포함하십시오 ', 괄호 안에 password' 부분은 정확히 말하면 ... –

+0

감사합니다 당신의 지원을 위해 대단히. 대단히 감사합니다. Alistair - 실종 된 ":"(안경을 사다 주려고)을 추가 할 때 - 컴파일 오류가 발생합니다 : 예상 시점 :이 시점에서 명령문의 끝 ","password : = "테스트" ""가 문제인 것으로 보입니다. 그러나 나는 그것을 볼 수 없다. – user1624926

+0

+1 좋은 캐치 :) –

3

파일 이름의 첫번째 부분을 얻기에 관하여 번째 질문에 대해 시도 :

if(instr(gsInputFileName," ") > 0 
    then short_file_name=left(gsInputFileName,instr(gsInputFileName," ")-1) 
    else short_file_name=gsInputFileName 
    endif 
+0

'instr'을 사용하여 오류 검사를위한 +1 –