VBA Cut&复制caractères

时间:2016-10-10 15:54:51

标签: vba excel-vba csv excel

我希望将第一行剪切/复制到同一张纸的第二行。

在我的第一个圆柱(A1)中,我有类似的东西:

Spain_1212_Barcelona

Spain_2321_Madrid

...

是否有一种聪明的方法可以构建我的第二个圆柱体,其中只包含没有城市名称的Spain_XXXX?我想只复制7个第一个字符。 谢谢你的时间。 此致

2 个答案:

答案 0 :(得分:0)

我知道我不会以这种方式帮助你,因为你不会学习它并且你没有尝试自己做,而你只是从下面复制并粘贴它我知道SO不是代码编写服务等等,但无论如何......

这是:

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

答案 1 :(得分:0)

您可以使用InStrRev获取字符串中最后一个下划线的位置。

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

enter image description here

更新

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