Как получить определенную часть строки - PullRequest
4 голосов
/ 30 марта 2010

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

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

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

Ответы [ 3 ]

9 голосов
/ 30 марта 2010

Вы можете сделать это, используя функции 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

Эта функция даст желаемые результаты.

2 голосов
/ 30 марта 2010

Насколько я знаю, в Excel нет регулярных выражений, вы должны делать то, что хотите, "вручную".

Вы можете сделать это, используя Instr, как показали другие.

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

Function ExtractFirstPartOfPath(path as String) as String

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

End Function
1 голос
/ 30 марта 2010

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

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...