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

时间:2015-12-21 17:12:35

标签: excel vba excel-vba hyperlink

简介:我导出点击率的营销报告,这些报告为我提供了公司网站上的产品网址。我想要一个列显示产品标题作为显示文本,同时将文本保持为超链接。这是使用带有产品标题/超链接的列为mailmerge创建数据源。

我有一个像这样设置的VBA宏:

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

这会产生一个编译错误,说明过程太长。我已经将它分解成多个潜艇,但我不想继续这样做。它也是如此手动,它几乎击败了创建宏的目的。但是因为我已经创建了它,并且与urls&有关系。建立的产品名称我不想丢弃它。

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

头脑风暴努力: 提取网址&我的宏的产品标题,并将它们分成两个单独的列,然后找出一个宏来组合这两个。

ping网址并从html标头标记中检索网页标题以显示为产品标题。

1 个答案:

答案 0 :(得分:0)

如果您的产品名称遵循您显示的模式,则可以执行此类操作

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