Excel VBA-删除某些文本后的部分网址

时间:2018-07-13 02:21:06

标签: vba excel-vba

3 个答案:

答案 0 :(得分:0)

您可以使用LeftInStrLen进行此操作。 Instr返回字符串首次出现的位置。您先添加要查找的字符串的长度(例如“ en /”),然后减去1,以从左手边开始从超链接中返回适当数量的字符。

使用您提供的示例链接,在Sheet1的单元格A1到A4中...

Sub TruncateHyperlinks()
    Dim l As Long
    Dim rng As Range

    For l = 1 To 4
        Set rng = Sheets("Sheet1").Range("A" & l)

        If InStr(rng.Value, "en/") Then
            Debug.Print Left(rng.Value, InStr(rng.Value, "en/") + Len("en/") - 1)
        ElseIf InStr(rng.Value, "ko/") Then
            Debug.Print Left(rng.Value, InStr(rng.Value, "ko/") + Len("ko/") - 1)
        End If
    Next l
End Sub

enter image description here

答案 1 :(得分:0)

使用此功能 B2 = truntext(A1)

Function truntext(textstring as string)
  dim ar
  ar = split(textstring, "/")
  truntext = left(textstring , len(textstring ) - len(ar(ubound(ar))))
end function

答案 2 :(得分:0)

如果您只想在ko或en之后输入任何内容,并且不想编写VB,则可以使用MID函数。

=MID(A1,1,IFERROR(FIND("/ko",A1),FIND("/en",A1))+3)