简介:我导出点击率营销报告,该报告为我提供了公司网站上产品的 URL。我想要一个将产品标题显示为显示文本的列,同时将文本保留为超链接。这是为了利用带有产品标题/超链接的列来创建邮件合并的数据源。
我有一个像这样设置的 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
这会产生一个编译错误,指出过程太长。我已经将其分成多个子部分,但我不想继续这样做。它也太手动了,几乎违背了创建宏的目的。但由于我已经创建了它,并且已经建立了 url 和产品标题的关系,所以我不想将其丢弃。
问题:创建一个列来显示产品标题(该标题是指向我公司网站上产品的超链接)的最有效方法是什么?
集思广益: 从我的宏中提取网址和产品标题,并将它们放入两个单独的列中,然后找出一个宏来将两者结合起来。
Ping url 并从 html header 标记中检索页面标题以显示为产品标题。
最佳答案
如果您的产品名称遵循您所展示的模式,您可以这样做
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
关于vba - Excel VBA - 设置超链接显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34400994/