2010-03-30 7 views
2

Я пишу макрос в Excel, где мне нужно получить подстроку из строки. Это так.Как получить определенную часть строки

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

В приведенных выше случаях мне нужно взять тестер String из первого и уложить со второго. Я пробовал использовать InStr, но это не полезно. Может ли кто-нибудь помочь?

ответ

8

Вы можете сделать это, используя функции InStr и Mid. Используйте функцию InStr, чтобы найти вхождения/и затем использовать Mid, чтобы получить часть строки, что вы заинтересованы в

Попробуйте это:.

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, как показали другие.

Ниже другое решение с использованием Split (эта функция доступна только для Excel 2000 и выше)

Function ExtractFirstPartOfPath(path as String) as String 

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

End Function 
Смежные вопросы