2010-03-30 6 views
2

문자열에서 부분 문자열을 가져와야하는 Excel에서 매크로를 작성하고 있습니다. 이것은 이와 같습니다.문자열의 특정 부분을 가져 오는 방법

~/tester/test/hai/bye 
~/stack/overflow/hai/bye 

위의 경우 나는 첫 번째 것에서 String 테스터를 가져와 두 번째 것에서 스택해야합니다. InStr을 사용해 보았지만 유용하지 않습니다. 누구든지 도와 줄 수 있습니까?

답변

8

InStr 및 Mid 기능을 사용하여이 작업을 수행 할 수 있습니다. 관심있는 문자열의 일부를 얻을 수 중순를 사용하여 다음의 항목을 찾기 위해 InStr이 기능을 사용하여 /과

을보십시오이 :.

Function ExtractFirstPartOfPath(path as String) as String 

    Dim first, second as Integer 

    first = InStr(path, "/") 
    second = InStr(first + 1, path, "/") 

    ExtractFirstPartOfPath = Mid(path, first + 1, second - first - 1) 

End Function 

이 기능은 원하는 결과를 얻을 수 .

1

이 시도 :

Sub Macro1() 
    Dim text As String, result As String 
    text = "~/tester/test/hai/bye" 
    result = Mid(text, 3, InStr(3, text, "/") - 3) 
    'MsgBox is for demo only 
    MsgBox result 
End Sub 
2

를 지금까지 내가 Excel에서 어떤 정규식, 당신은 "손으로"당신이 원하는 것을 할 필요가 없습니다 알다시피.

Instr을 사용하면 다른 사람과 같이 할 수 있습니다.

분할을 사용하여 다른 솔루션 아래

Function ExtractFirstPartOfPath(path as String) as String 

    Dim parts 
    parts = Split(path, "/") 
    ExtractFirstPartOfPath = parts(1) 

End Function 
(이 기능은 위의 엑셀 2000에서 사용할 수 있으며)
관련 문제