Вырезание и копирование символов VBA

#vba #excel #csv

#vba #excel #csv

Вопрос:

Я ожидаю вырезать / скопировать свою первую строку во вторую на том же листе.

В моем первом столбце (A1) у меня есть что-то вроде :

Испания_1212_barcelona

Spain_2321_Madrid

….

Есть ли разумный способ создания моей второй колонки, которая содержит только Spain_XXXX без названия города? Я хочу скопировать только 7 первых символов. Спасибо, что уделили мне время. С уважением

Комментарии:

1. если это постоянное количество символов, вы можете использовать Left функцию

Ответ №1:

Вы можете использовать InStrRev , чтобы получить позицию последнего подчеркивания в строке.

 Function getCountryArea(Text As String)
    getCountryArea = Left(Text, InStrRev(Text, "_") - 1)
End Function
  

введите описание изображения здесь

Обновить:

 Function getCountryArea(Text As String)
    Text = Replace(Text, "SP", "Spain")
    getCountryArea = Left(Text, InStrRev(Text, "_") - 1)
End Function
  

Ответ №2:

Вот оно:

 Option Explicit

Public Function str_name(str_input As String) As String
        
    Dim l_n as long
    
    l_n = InStr(1, str_input, "_", vbTextCompare)
    l_n = InStr(l_n   1, str_input, "_", vbTextCompare)
    
    str_name = Left(str_input, l_n - 1)
    
End Function

Public Sub TestMe()

    Debug.Print str_name("Spain_1212_Barcelona")
    Debug.Print str_name("Spain_2321_Madrid")

End Sub