#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