简介:我导出点击率的营销报告,这些报告为我提供了公司网站上的产品网址。我想要一个列显示产品标题作为显示文本,同时将文本保持为超链接。这是使用带有产品标题/超链接的列为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标头标记中检索网页标题以显示为产品标题。
答案 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