2012-03-07 2 views
1

나는 이것들에 대해 이미 많은 비슷한 질문을하고 있지만 그들 중 누구도 내가 원하는 대답을주는 것 같지 않습니다. VBA에서 자동으로 그림을 삽입 할 수 있도록 자동화하려고 노력하고 있습니다. 실제 명령이 이 Excel.Application.GetOpenFileName()VBA에서 그림 파일 이름의 경로 제거

내 하위 따라서

Sub Image() 
Dim Pict 
Dim ImgFileFormat As String 
ImgFileFormat = "Image Files (*.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tif; *.tiff), *.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tif; *.tiff" 
Pict = Excel.Application.GetOpenFilename(ImgFileFormat) 
If Pict = False Then End 
End Sub 

를 읽고 그래서 나는 사용자가 파일을 선택 할 수 있도록 GetOpenFileName를 사용하지만 이것은 단지 엑셀에서 지원으로 난 참조 목록에 엑셀을 추가 한 그러나 내가 원하는 것은 파일 경로 (Pict Variable)에서 파일의 이름을 추출하는 것입니다.

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

답변

2
Pict = Dir(Pict) 

당신에게 파일 이름 만 제공해야합니다.

+0

달콤한! 좋은 방법은 경로를 제거하고 파일 이름을 남겨주세요. 감사! –

+0

둘 다 주셔서 감사하지만 나를 위해 simler 더 나은 – user1205406

+0

참고 사항에 : 이것은 파일이 실제로 존재하기 때문에 작동합니다. Andrew의 대답은 경로가 + 파일 이름이지만 파일 시스템에 있는지 여부를 아직 모르는 경우 더 일반적이며 잘 작동합니다. –

2

어쩌면 이것은 당신을 도울 것입니다 :

Function FunctionGetFileName(FullPath As String) 
Dim StrFind As String 
    Do Until Left(StrFind, 1) = "\" 
     iCount = iCount + 1 
     StrFind = Right(FullPath, iCount) 
      If iCount = Len(FullPath) Then Exit Do 
    Loop 
    FunctionGetFileName = Right(StrFind, Len(StrFind) - 1) 
End Function