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 文本框的主要内容,如果未能解决你的问题,请参考以下文章