2009-12-13 4 views

답변

23

당신이 VBA를 의미하는 경우에, 당신은 예를 들어하면 FullName을 사용할 수 있습니다

strFileFullName = ActiveWorkbook.FullName 
+11

확실히 ThisWorkbook.FullName을 의미합니까? ;) – Oorang

+4

필요는 없습니다. – Fionnuala

+13

Oorang의 의견이 맞습니다. 'ThisWorkbook.FullName'은 정확하고 안전한 호출입니다. Veera의 질문은 다음과 같이 말합니다. "내 Excel 파일 sample.xls 안에 VBA *를 쓰고 있습니다. 이제 VBA에서 sample.xls의 전체 경로를 얻고 싶습니다." (강조가 추가되었습니다.)이 경우 'ThisWorkbook.FullName'을 사용하면 올바른지, 'sample.xls'가 현재 활성 통합 문서가 아닌 경우 'ActiveWorkbook.FullName'이 잘못된 답을 줄 수 있습니다. –

7
strScriptFullname = WScript.ScriptFullName 
    strScriptPath = Left(strScriptFullname, InStrRev(strScriptFullname,"\")) 
+3

op에 * inside * sample.xls이 표시되어 VBScript가 의심 스럽습니다. 나는 VBA를 의심한다. – Fionnuala

0

ActiveWorkbook.FullName 내가 생각하는 더 나은 것, 경우에 다른 Excel 통합 문서에 저장되어있는 VBA 매크로가, 그러나 매크로가있는 곳이 아닌 편집중인 Excel의 세부 사항을 원합니다.

같은 파일에 있으면 문제가되지 않지만 다른 파일에 있고 매크로가 아닌 Data가있는 파일을 원한다면 ActiveWorkbook이 필요합니다. 왜냐하면 두 시나리오 모두를 다루기 때문입니다.

2

이것은 모든 응답, 이름, 경로, 파일 이름을 제공하는 간단한 대안입니다.

Dim FilePath, FileOnly, PathOnly As String 

FilePath = ThisWorkbook.FullName 
FileOnly = ThisWorkbook.Name 
PathOnly = Left(FilePath, Len(FilePath) - Len(FileOnly)) 
+0

'PathOnly = Left (FilePath, Len (FilePath) -Ren (FileOnly))'명령을하면 다음과 같이 쓸 수 있습니다 : 'PathOnly = ThisWorkbook.Path' – EBH

관련 문제