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

标签 vba excel hyperlink

简介:我导出点击率营销报告,该报告为我提供了公司网站上产品的 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/

相关文章:

vba - 在VBA中将big-endian转换为little-endian,反之亦然

excel - 如何在 Excel VBA 宏中发布为 PDF?

excel - 如何使用公式 excel 2007 获取工作表名称

java - 创建数组数组的动态数组的最佳方法是什么

android - 从 Android 中的互联网链接获取数据

Excel VBA表格滞后

VBA Val函数改变值?

excel - 如何比较excel中的两列

vba - 尽管公式是正确的,但在单元格中写入公式会出现错误

swift - Adobe PDF 链接无法在运行 IOS 13.o、13.1.2 和 13.2 beta 的已编译 Swift 5 中打开,但可以在所有 IOS 版本 < 13.0 中打开