Excel VBA – 设置超链接显示文本

简介:我出口的点击率的营销报告给我从我公司的网站产品的URL。 我想要一个显示产品标题的列作为显示文本,同时将文本保持为超链接。 这是为使用产品标题/超级链接的列创build邮件合并的数据源。

我有一个VBAmacros这样设置:

Sub ClickableLinkTitle() 'Dim List As Integer, result As String 'Range("$G$2:$G$158").value = List 'Range("$H$2:$H$158").value = result Dim i As Long Dim j As Integer Dim value As String j = 7 For i = 2 To Rows.Count If Not IsEmpty(Cells(i, 6)) Then value = Cells(i, 6).value If value = "http://example.com/products/db.asp?prodID=1" Then Cells(i, j).value = "Product 1" ElseIf value = "http://example.com/products/db.asp?prodID=2" Then Cells(i, j).value = "Product 2" ElseIf value = "http://example.com/products/db.asp?prodID=2" Then Cells(i, j).value = "Product 3" '(ect....until Product 400-and-something) End If End If Next i End Sub 

这会产生编译错误,说明过程太长。 我已经把它分成了多个潜艇,但我不想继续这样做。 它也是如此手动它几乎打败了创buildmacros的目的。 但是既然我已经创造了它,并且build立了网站和产品的关系,我不想把它扔掉。

问题:创build显示产品标题的列的最有效方法是什么,该标题是我公司网站上产品的超链接?

头脑风暴的努力:从我的macros提取url和产品标题,把它们分成两个单独的列,然后找出一个macros来结合这两个。

Pingurl并从html标头标签中检索页面标题以显示为产品标题。

如果你的产品名称是遵循你所展示的模式,你可以做这样的事情

 For i = 2 To Rows.Count If Not IsEmpty(Cells(i, 6)) Then Cells(i, j).value = Replace(Replace(Value,"http://company.com/",""), "-", " ") End If Next i