编辑超链接并显示userform文本框的部分条目中的特定文本

时间:2018-04-15 01:43:23

标签: excel vba excel-vba

我有一个具有文本框条目的userform,然后将其发送到特定位置。文本框的内容是一个超链接。我想要它做的是更新excel表单中的超链接并显示URL的最后部分。例如https://stackoverflow.com/questions/ask ............ 超链接I更新始终是相同的,最后一部分是更改。例如:

https://stackoverflow.com/questions/ask

https://stackoverflow.com/questions/this

https://stackoverflow.com/questions/question

https://stackoverflow.com/questions/yippeeee

我知道我可以在我的用户表单中调用另一个文本框条目,但我试图尽可能避免为用户提供更多步骤。反正有没有这样做? 这是我的代码:

Sub hyperlink()

' hyperlink Macro

Dim rng As Range
Set rng = Range("C3:I13")

Str = "https://somelink.com/blahblah/THIS_IS_WHAT_I_WANT_TO_DISPLAY"

Range("C3:I13").Select
Application.CutCopyMode = False
Selection.Hyperlinks(1).Address = "textbox2.text"
Selection.Hyperlinks(1).TextToDisplay = "THIS_IS_WHAT_I_WANT_TO_DISPLAY"
End Sub

非常感谢你。

1 个答案:

答案 0 :(得分:1)

像这样提取字符串的最后一部分

  • str = Right(str, Len(str) - InStrRev(str, "/"))
Option Explicit

Public Sub UpdateHyperLink()

    Dim rng As Range, str As String
    Set rng = Range("C3:I13")

    str = "https://somelink.com/blahblah/THIS_IS_WHAT_I_WANT_TO_DISPLAY"

    str = Right(str, Len(str) - InStrRev(str, "/"))

    Application.CutCopyMode = False

    With rng.Hyperlinks(1)
        .Address = "textbox2.text"
        .TextToDisplay = str        '<--- str = "THIS_IS_WHAT_I_WANT_TO_DISPLAY"
    End With
End Sub