VBA 将多个超链接添加到一个 Powerpoint 文本框

Posted

技术标签:

【中文标题】VBA 将多个超链接添加到一个 Powerpoint 文本框【英文标题】:VBA to add multiple hyperlinks to one Powerpoint text box 【发布时间】:2022-01-22 19:48:59 【问题描述】:

我在 Powerpoint 中使用 VBA 循环从 Excel 导入数据,并将已导入的每个新字符串作为新项目符号写入幻灯片的文本框中。这工作正常。然后应将同样导入的超链接添加到每个项目符号中。除了只有最后一个项目符号保留其超链接之外,此方法有效。我怀疑超链接不是专门添加到项目符号,而是添加到文本框,因此被每个新项目符号覆盖,只留下带有超链接的底部项目符号。知道如何保留所有项目符号的超链接吗?

非常感谢!

new_slide.Shapes(2).TextFrame.TextRange.text = new_slide.Shapes(2).TextFrame.TextRange.text & vbNewLine & new_text

With new_slide.Shapes(2).TextFrame.TextRange.Find(new_text).ActionSettings(ppMouseClick)
    .Action = ppActionHyperlink
    .Hyperlink.Address = excel_link
End With

【问题讨论】:

【参考方案1】:

修改版

如果我们先添加文本,然后单步执行每一行,每次添加超链接一行,它就会起作用。您需要两次通过 XL 导入,一次用于文本,一次用于超链接:

Sub RoundTwo()
    Dim oSh As Shape
    Dim x As Long
    
    Set oSh = ActiveWindow.Selection.ShapeRange(1)
    
    For x = 1 To 3
        With oSh.TextFrame.TextRange
            .Text = .Text & vbNewLine & "Some new text"
        End With
    Next
    
    For x = 1 To 3
        Call AddLinkToLine(oSh, x)
    Next
    
End Sub

Sub AddLinkToLine(oSh As Shape, lLine As Long)
    With oSh.TextFrame.TextRange.Paragraphs(lLine)
        With .ActionSettings(ppMouseClick)
            .Action = ppActionHyperlink
            .Hyperlink.Address = "http://www.pptfaq.com"
        End With
    End With
End Sub

【讨论】:

谢谢 - 但是同样的问题仍然存在 - 只有最后一行保留超链接,添加图像到问题 @Fred 你是不是一一添加新的文本行,每次添加新行时都调用 AddLinkToLastLine 函数?你需要这样做。 是的,如果我单独使用“原样”提供的代码并执行 3 次,我会得到问题中显示的结果。 IE。 3 行文本,但只有最后一行保留其超链接。 @Fred 我相信你可能已经举起了一个虫子生活的岩石。请参阅我的答案的编辑版本。 太棒了——由于某种原因,我需要添加 2 段行“Paragraphs(lLine + 2)”,但是你的新版本完美运行——非常感谢!

以上是关于VBA 将多个超链接添加到一个 Powerpoint 文本框的主要内容,如果未能解决你的问题,请参考以下文章

在 VBA UDF 中添加超链接

添加超链接时,VBA抛出错误1004

当根据单元格值为每一行添加其他数据时,VBA 创建超链接

VBA excel,工作表副本但超链接已更改

需要帮助使用 VBA 在 excel 中将超链接插入到我计算机上的指定图片

将带有 URL 变量的超链接添加到数据表(jQuery)+ 搜索不起作用