如何在某些文本后删除网址的一部分?
假设我在A1到A4单元格中有以下URL:
https://stackoverflow.com/testing/testing1/en/unwantedTest.aspx
https://stackoverflow.com/extra/testing/testing2/en/unwantedTest.aspx
https://stackoverflow.com/testing/testing3/ko/unwantedTest.aspx
https://stackoverflow.com/extra2/testing/testing4/testing5/ko/unwantedTest.aspx
我想要的预期结果是:
https://stackoverflow.com/testing/testing1/en/
https://stackoverflow.com/extra/testing/testing2/en/
https://stackoverflow.com/testing/testing3/ko/
https://stackoverflow.com/extra2/testing/testing4/testing5/ko/
en / 或 ko / 之后的所有内容都应删除。
所以有人可以解释或告诉我如何做。
谢谢。
答案 0 :(得分:0)
您可以使用Left
,InStr
和Len
进行此操作。 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
答案 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)